gpt4 book ai didi

WPF:继承自 HeaderedContentControl

转载 作者:行者123 更新时间:2023-12-04 19:42:16 39 4
gpt4 key购买 nike

我想创建一个简单的控件,它继承自 HeaderedContentControl,并具有一些称为标题、副标题和图标的基本依赖属性。我希望能够提供对这些属性进行数据绑定(bind)的默认 header 模板。对于此示例,我将此类命名为 HeaderedView。

我在提供可以绑定(bind)到 HeaderedView 上定义的属性的默认 header 模板时遇到了问题。我正在试验如下标记:

<Style TargetType="{x:Type local:HeaderedView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type HeaderedContentControl}">
<StackPanel>
<Grid>
<ContentPresenter ContentSource="Header"/>
</Grid>
<Grid>
<ContentPresenter ContentSource="Content"/>
</Grid>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<Grid>
<TextBlock Text="{TemplateBinding local:HeaderedView.Title}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>

很遗憾,标题未显示。

header 模板必须是可替换的(这就是我要使用 HeaderedContentControl 的原因)。

每次我似乎想继承这个控件时,我似乎都在为实现而苦苦挣扎。任何帮助将不胜感激!

最佳答案

在您的模板中,您正在使用 ContentPresenter 来显示页眉,但您并没有告诉 ContentPresenter 它需要使用 HeaderTemplate。您应该能够执行此操作以查看应用的自定义 HeaderTemplate:

<ContentPresenter ContentSource="Header" ContentTemplate="{TemplateBinding HeaderTemplate}" />

此外,如果您只打算更改 HeaderTemplate,则无需首先覆盖 Template。默认的 HeaderedContentControl 将适本地应用您的 HeaderTemplate。

关于WPF:继承自 HeaderedContentControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1100844/

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