2012-11-28 62 views
0

我抓住了一個組合框的整個模板進行一些修改。對於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