Я изучаю WPF и не могу выяснить как к enfore мои кнопки для принятия квадратной формы.
Вот моя Разметка XAML:
<Window x:Class="Example"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="368" Width="333">
<Window.Resources>
<Style x:Key="ToggleStyle" BasedOn="{StaticResource {x:Type ToggleButton}}"
TargetType="{x:Type RadioButton}">
</Style>
</Window.Resources>
<RadioButton Style="{StaticResource ToggleStyle}">
Very very long text
</RadioButton>
</Window>
Определение явных значений для Width
и Height
атрибуты походят на неверное представление - кнопка должна вычислить свои размеры на основе ее содержания автоволшебно, но сохранить ее ширину и высоту равными. Действительно ли это возможно?
Попробуйте это - похоже, это работает в Kaxaml:
<Button
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
Some content
</Button>
(Для проверки я поместил текстовое поле внутри кнопки, потому что это простой способ изменить размер содержимого без повторного анализа Xaml.)
Изменить: извините, вероятно, следовало указать его как стиль, соответствующий вашему примеру:
<Style TargetType="Button" x:Key="SquareButton">
<Setter Property="MinWidth" Value="{Binding ActualHeight, RelativeSource={RelativeSource Self}}" />
<Setter Property="MinHeight" Value="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" />
</Style>
Я думаю, вы хотите привязать ширину кнопки к ее высоте, например:
<Button Name="myButton"
Width="{Binding ElementName=myButton, Path=Height}"
Height="100">
Button Text
</Button>