【问题标题】:Referencing a base types control template in xaml在 xaml 中引用基本类型控件模板
【发布时间】:2009-12-07 02:25:20
【问题描述】:

我有一个从ComboBox 派生的控件,我想使用ComboBox ControlTemplate,并在xaml 中为其设置一些值,即ItemContainerStyle。下面的代码不起作用,我打算将基本ComboBox 控件模板应用于此的最后一个设置器没有做任何事情。

   <Style
      TargetType="{x:Type local:EditingFilteringComboBox}"
      BasedOn="{StaticResource {x:Type ComboBox}}">
      <Setter
         Property="IsEditable"
         Value="False" />
      <Setter
         Property="DisplayMemberPath"
         Value="DisplayValue" />
      <Setter
         Property="ItemContainerStyle"
         Value="{StaticResource editingFilteringComboBoxListBoxItem}" />
      <Setter
         Property="Template"
         Value="{StaticResource {x:Type ComboBox}}" />
   </Style>

我想从ComboBox 派生,但我不想包含它的整个控件模板。我什至不想触摸控制模板。我确实想更改ItemContainerStyle,我可以通过代码进行更改,但如果我不必这样做会更好。

我在这里想要这个的另一个原因是因为想要访问ComboBox 的控制模板的内部成员,即TextBoxPopup。通常我在OnApplyTemplate的覆盖中访问这样的成员。

感觉自己走错了路,请赐教。

【问题讨论】:

  • 你可以成为我的拼写老师

标签: wpf combobox styles controltemplate


【解决方案1】:

虚惊,

我没有在我的 generic.xaml 中包含指向该文件的链接

哦,我不必设置模板值

   <Style
      TargetType="{x:Type local:EditingFilteringComboBox}"
      BasedOn="{StaticResource {x:Type ComboBox}}">
      <Setter
         Property="IsEditable"
         Value="False" />
      <Setter
         Property="DisplayMemberPath"
         Value="DisplayValue" />
      <Setter
         Property="ItemContainerStyle"
         Value="{StaticResource editingFilteringComboBoxListBoxItem}" />
   </Style>

样式只会设置与基本样式不同的属性。因为我不想更改控制模板,所以我根本不设置它。 OnApplyTemplate 被调用,我可以访问 ComboBox 的控件模板的内部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多