基本上我想做的是FontSize
是可选的,这意味着应该有一个默认值。请协助。
<ControlTemplate x:Key="MyTemplate" TargetType="{x:Type Control}">
<TextBlock
HorizontalAlignment="Left"
VerticalAlignment="Center"
MaxWidth="136"
MaxHeight="55"
FontSize="{TemplateBinding FontSize}"
TextWrapping="Wrap"
/>
</ControlTemplate>
答案 0 :(得分:1)
将FontSize设为可选,这意味着应该有一个默认值
这似乎是对TemplateBinding的误解。 TemplateBinding是一种在控件模板中使用的特殊绑定,其中源是模板所针对的控件中的依赖属性。现在,依赖项属性可以具有默认值 - 但是在定义中设置:
public static readonly DependencyProperty SomethingProperty = DependencyProperty.Register(
"Something",
typeof(double),
typeof(SomethingControl),
new FrameworkPropertyMetadata(1.0));
^ default value
对于OP,Control
类拥有FontSize
DP,因此您无法以这种方式设置其默认值。所以问题就变成了,你想做什么?有两种选择:
ControlTemplate
,而是使用Style
,并将FontSize
设置为所需的默认值。 (您也可以使用Style应用ControlTemplate。)FontSize
- 这将有效地在整个应用程序中设置默认字体大小。在不了解更多背景的情况下,很难说哪种方法适合您的具体情况。