x的自定义控件样式:Shared和EventSetter

时间:2012-07-30 20:49:17

标签: wpf xaml

我可以将ListView的以下样式用作用户控件(或窗口):

<ListView.ItemContainerStyle>
    <Style TargetType="Control">
        <Style.Resources>
            <SolidColorBrush
                x:Key="{x:Static SystemColors.ControlBrushKey}"
                x:Shared="False"
                Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" />
            <SolidColorBrush
                x:Key="{x:Static SystemColors.ControlTextBrushKey}"
                x:Shared="False"
                Color="{DynamicResource {x:Static SystemColors.HighlightTextColorKey}}" />
        </Style.Resources>
        <EventSetter
            Event="MouseLeftButtonUp"
            Handler="ListView_Content_MouseLeftButtonUpEvent" />
    </Style>
</ListView.ItemContainerStyle>

如何在自定义控件中获得相同的结果? 我需要“x:Shared”,以便在系统颜色改变时重新计算颜色。 我需要EventSetter进行一些特殊处理。但是,Generic.xaml中都不支持这些。在自定义控件中获取这些功能的正确方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

我能够使用Generic.xaml中的Style.Resources,所以我不明白那里可能有什么问题。

附加事件处理程序覆盖自定义控件的OnApplyTemplate,并在代码中添加事件处理程序。