use*_*369 4 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 Property=ContentControl.Content}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
如何更改wpf中的控件内容?我尝试过类似的东西
<Control Template="{StaticResource Test}" BorderBrush="Black" Content="aa"></Control>
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,它说我无法识别或找不到属性内容。
您需要ContentControl单独使用 来执行您想要的操作...要明确的是,ContentControl元素与元素无关Control。它用于显示数据对象并可选择将 a 应用于DataTemplate该对象。这DataTemplate是您可以自定义的部分:
<ContentControl Content="{Binding SomeDataObject}"
ContentTemplate="{StaticResource SomeDataObjectTemplate}" />
Run Code Online (Sandbox Code Playgroud)
...
在一些Resources集合中:
<DataTemplate x:Key="SomeDataObjectTemplate" DataType="{x:Type Prefix:SomeDataObject}">
<Grid>
<Border BorderBrush="Black" BorderThickness="1" CornerRadius="3" />
<TextBlock Text="{Binding}" />
</Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
您唯一的其他选择是声明 aUserControl并将标记的某些部分公开为DependencyPropertys ,您可以从控件外部进行数据绑定:
<Prefix:YourUserControl CustomContent="{Binding SomeDataObject}" />
Run Code Online (Sandbox Code Playgroud)
控件内部:
<ContentControl Content="{Binding CustomContent,
RelativeSource={RelativeSource AncestorType={x:Type Local:YourUserControl }}}" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13496 次 |
| 最近记录: |