![](/img/trans.png)
[英]How to find the Parent of a CustomControl from inside the CustomControl
[英]How to apply a HeaderTemplateProperty to a HeaderProperty inside in a CustomControl?
在MyCustomControl
中,我創建了Heder
和HeaderTemplate
依賴屬性。
public static readonly DependencyProperty HeaderProperty =
DependencyProperty.Register(
"Header",
typeof(object),
typeof(MyCustomControl),
new FrameworkPropertyMetadata(
(object)null,
new PropertyChangedCallback(OnHeaderChanged)));
public static readonly DependencyProperty HeaderTemplateProperty =
DependencyProperty.Register(
"HeaderTemplate",
typeof(DataTemplate),
typeof(MyCustomControl),
new FrameworkPropertyMetadata(
(DataTemplate)null,
new PropertyChangedCallback(OnHeaderTemplateChanged)));
private static void OnHeaderTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// ???;
}
我不明白我必須為HeaderTemplate
寫什么才能應用於Header
。 我認為這里需要寫OnHeaderTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
,但究竟是什么?
<Style TargetType="{x:Type local:MyCustomControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyCustomControl}">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter ContentSource="Header"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您將在控件模板中綁定它,可能就像這樣:
<ContentPresenter
ContentSource="Header"
ContentTemplate="{TemplateBinding HeaderTemplate}"
/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.