2012-11-28 5 views
0

Я захватил весь шаблон для combobox, чтобы внести некоторые изменения. Стиль для ComboBoxItem это:Пользовательский ComboBoxItem имеет проблему с выделенной областью

<Style x:Key="ComboBoxItemStyle" TargetType="{x:Type ComboBoxItem}"> 
     <Setter Property="OverridesDefaultStyle" Value="True"></Setter> 
     <Setter Property="Background" Value="{DynamicResource StandardBlackBrush}"></Setter> 
     <Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ComboBoxItem}"> 
        <Border x:Name="Bd" BorderBrush="{DynamicResource StandardBlackBrush}" BorderThickness="3" SnapsToDevicePixels="true" > 
         <ContentPresenter x:Name="Cp" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
        </Border>  
        <ControlTemplate.Triggers> 
         <Trigger Property="IsHighlighted" Value="true"> 
          <Setter TargetName="Bd" Property="BorderBrush" Value="{DynamicResource StandardFocusRectangleBrush}"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style >    

Это приводит к очень маленьких элементов поля со списком, которые только высота/ширина содержимого, которое только текстовая строка. Для того, чтобы сделать эти вещи больше, я добавить маржу к ContentPresenter и выглядит штраф:

<ContentPresenter Margin="20,10,20,10" x:Name="Cp" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 

Но, затем щелчками мыши все равно должны быть в пределах текстовой области. Мышь заходит за пределы текста, но внутри границы закрывает всплывающее окно, но не делает выбор. Это моя проблема.

ответ

1

Это происходит потому, что граница не будет реагировать на щелчки мыши, если у нее нет установленного фона.

Так, чтобы исправить вашу проблему, вы установите следующие на границе элемента в XAML:

Background="Transparent" 
+0

Спасибо !! Это исправило это. – throop77

Смежные вопросы