0
我爲我的用戶控件創建了一個FocusVisualStyle,並且已成功實現覆蓋。我的問題是我想從父級使用一些屬性,但TemplateBinding似乎不工作。FocusVisualStyle模板,將屬性綁定到父級
的控制的簡化版本定義如下:
<Style TargetType="{x:Type local:Thought}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ThoughtFocusStyle}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:Thought}" >
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{StaticResource ThoughtBorderNormalBrush}">
<!-- other controls -->
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我自FocusVisualStyle定義如下:
<Style x:Key="ThoughtFocusStyle" TargetType="{x:Type Control}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Control}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{StaticResource ThoughtBorderFocusBrush}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果ThoughtFocusStyle我硬編碼了borderThickness,它按預期工作(標籤到控制中),但使用TemplateBinding不。我玩過RelativeSource,但似乎無法獲得正確的語法(對於WPF來說還是很新的)。
的工作,感謝您的正確的語法。 – Spevy
這發生了一些時間..與TemplateBinding,我給你的確切等效的模板綁定...我不記得在什麼情況下它不起作用 –
試試這個以及: 「{Binding RelativeSource = { RelativeSource Mode = TemplatedParent},Path = BorderThickness}「 –