gpt4 book ai didi

xml - WPF - 带内容的边框模板

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:27 26 4
gpt4 key购买 nike

假设我有以下控件模板:

<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 元素与 无关控制元素。它用于显示数据对象,并可选择将 DataTemplate 应用于该对象。 DataTemplate 是您可以自定义的部分:

<ContentControl Content="{Binding SomeDataObject}" 
ContentTemplate="{StaticResource SomeDataObjectTemplate}" />

...

在一些Resources集合中:

<DataTemplate x:Key="SomeDataObjectTemplate" DataType="{x:Type Prefix:SomeDataObject}">
<Grid>
<Border BorderBrush="Black" BorderThickness="1" CornerRadius="3" />
<TextBlock Text="{Binding}" />
</Grid>
</DataTemplate>

你唯一的另一种选择是声明一个 UserControl 并将标记的某些部分公开为 DependencyProperty,你可以从控件外部进行数据绑定(bind):

<Prefix:YourUserControl CustomContent="{Binding SomeDataObject}" />

控件内部:

<ContentControl Content="{Binding CustomContent, 
RelativeSource={RelativeSource AncestorType={x:Type Local:YourUserControl }}}" />

关于xml - WPF - 带内容的边框模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25666273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com