我试图将WPF按钮的角半径动态设置为一半按钮'高度,使两端完全圆整。
Window资源中的条目如下所示,但CornerRadius
绑定不绑定,并将NaN
传递给值转换器。
我尝试用Binding
替换TemplateBinding
无效。 Snoop在CornerRadius
属性上显示错误,设置为NaN
。我错过了一些明显的东西吗?
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="grid">
<Border x:Name="border" BorderBrush="#FFFEFEFF" BorderThickness="2" CornerRadius="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Height,Converter={StaticResource HalfConverter}}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
...
答案 0 :(得分:2)
不应绑定到控件的Height
(除非显式设置为Double.NaN
),否则应绑定到其ActualHeight
属性:
CornerRadius="{Binding Path=ActualHeight,
RelativeSource={RelativeSource TemplatedParent},
Converter={StaticResource HalfConverter}}">