私は、ボタンの高さの半分にWPFボタンのコーナー半径を動的に設定して、両端が丸くなるようにしています。WPF Button ControlTemplate HeightバインディングがNaNを返す
Windowリソースのエントリは次のようになりますが、CornerRadius
バインディングはバインドされず、NaN
をバリューコンバータに渡します。
Binding
をTemplateBinding
に置き換えようとしましたが、役に立たなくなりました。スヌープは、の値をNaN
と設定しているので、CornerRadius
のプロパティにエラーが表示されます。私はここで何かを見逃していますか?
<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>
...
ActualHeightにバインドする代わりの高さ。 – Clemens
@クレメンスああ!それは簡単だった。私は自分自身から遠く離れていないと思って、他のプロパティを探し、 'RenderSize'を見つけました。それを回答として投稿すると、私は感謝の意をもってそれを受け入れます。 – Dan