Wpf 每个类都有更改的ControlTemplate
我有以下ControlTemplate,它与我的所有CustomControls相同Wpf 每个类都有更改的ControlTemplate,wpf,Wpf,我有以下ControlTemplate,它与我的所有CustomControls相同 然后我用了一种风格: 但我希望ContentControl“InnerContent”在每个类中都更改其模板 例如 ???? 如何实现这一点?拥有类型为DataTemplate的单独属性,并将其绑定到InnerContent public DataTemplate InnerContentTemplate { get { return (DataTemplate)GetVal
然后我用了一种风格:
但我希望ContentControl“InnerContent”在每个类中都更改其模板
例如
????
如何实现这一点?拥有类型为
DataTemplate
的单独属性,并将其绑定到InnerContent
public DataTemplate InnerContentTemplate
{
get { return (DataTemplate)GetValue(InnerContentTemplateProperty); }
set { SetValue(InnerContentTemplateProperty, value); }
}
// Using a DependencyProperty as the backing store for InnerContentTemplate. This enables animation, styling, binding, etc...
public static readonly DependencyProperty InnerContentTemplateProperty =
DependencyProperty.Register("InnerContentTemplate", typeof(DataTemplate), typeof(PssFunctionControlSlider), new UIPropertyMetadata(null));
模板将其绑定到基础模板中
<ControlTemplate x:Key="PssFunctionControlBaseHorizontal" TargetType="local:PssFunctionControlBase">
<Grid>
<Border BorderThickness="1">
<ContentControl x:Name="InnerContent" Template="{StaticResource InnerContentBaseHorizontal}" ContentTemplate="{TemplatedBinding InnerContentTemplate}"/>
</Border>
<Control x:Name="PART_ResizeDecorator" Visibility="Collapsed"
Template="{StaticResource ResizeDecoratorTemplate}" />
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Value="True"
Binding="{Binding EditModeEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:PssViewLayoutControl}}}">
<Setter TargetName="PART_ResizeDecorator" Property="Visibility" Value="Visible" />
</DataTrigger>
</ControlTemplate.Triggers>
谁走了?谢谢你问。我已将所有绑定更改为RelativeSource Findanchester,现在它可以工作了。
<Style TargetType="{x:Type local:PssFunctionControlSlider}" BasedOn="{StaticResource BaseStyle}">
<Setter Property="InnerContentTemplate" Value="Your Template" />
</Style>