Xml WPF-带内容的边框模板
假设我有以下控件模板:Xml WPF-带内容的边框模板,xml,wpf,xaml,border,contentcontrol,Xml,Wpf,Xaml,Border,Contentcontrol,假设我有以下控件模板: <ControlTemplate x:Key="Test"> <Grid> <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Width="33" Height="33" CornerRadius="3"/> <ContentControl Content="{TemplateBinding Pro
<ControlTemplate x:Key="Test">
<Grid>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Width="33" Height="33" CornerRadius="3"/>
<ContentControl Content="{TemplateBinding Property=ContentControl.Content}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
如何更改wpf中控件的内容?我试过类似的方法
<Control Template="{StaticResource Test}" BorderBrush="Black" Content="aa"></Control>
但当我这样做时,它会告诉我属性内容未被识别或未找到。因为控件不是从ContentControl派生的,所以它不会公开内容属性。查看更多信息。您需要单独使用
ContentControl
来执行所需操作。。。需要明确的是,ContentControl
元素与Control
元素无关。它用于显示数据对象,并可选地对对象应用DataTemplate
。DataTemplate
是您可以自定义的部分:
<ContentControl Content="{Binding SomeDataObject}"
ContentTemplate="{StaticResource SomeDataObjectTemplate}" />
您唯一的其他选择是声明一个UserControl
,并将标记的某些部分公开为dependencProperty
s,您可以从控件外部将数据绑定到这些部分:
<Prefix:YourUserControl CustomContent="{Binding SomeDataObject}" />
<ContentControl Content="{Binding CustomContent,
RelativeSource={RelativeSource AncestorType={x:Type Local:YourUserControl }}}" />
控件内部:
<Prefix:YourUserControl CustomContent="{Binding SomeDataObject}" />
<ContentControl Content="{Binding CustomContent,
RelativeSource={RelativeSource AncestorType={x:Type Local:YourUserControl }}}" />
控件是基类,没有内容属性。