【问题标题】:Custom ComboBoxItem has selection area issue自定义 ComboBoxItem 有选择区域问题
【发布时间】:2012-11-28 18:42:55
【问题描述】:

我抓取了一个组合框的整个模板来进行一些修改。 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}"/>

但是,鼠标点击仍然必须在文本区域内。在文本之外但在边框内单击鼠标会关闭弹出窗口但不进行选择。这是我的问题。

【问题讨论】:

    标签: wpf wpf-controls


    【解决方案1】:

    这是因为边框在没有设置背景时不会对鼠标点击做出反应。

    因此,为了解决您的问题,您在 XAML 中的边框元素上设置了以下内容:

    Background="Transparent"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2014-09-26
      • 2020-08-28
      • 1970-01-01
      相关资源
      最近更新 更多