WPF:ToggleButtons的行长度相等?

时间:2010-07-30 12:57:46

标签: c# wpf xaml wpf-controls radio-button

我目前正在我的应用程序中将RadioButtons显示为ToggleButtons行(请参阅my last question)。但是,我希望按钮具有相同的宽度 - 目前,每个按钮都和它一样宽。

由于我正在使用模板,所以我希望每次使用控件时都避免指定宽度 - 相反,行中每个按钮的宽度应该等于最宽按钮的宽度。组。

有任何想法如何在XAML中执行此操作? : - )

4 个答案:

答案 0 :(得分:7)

也许使用UniformGrid并设置属性HorizontalAlignement="Stretch"的样式会有所帮助。

答案 1 :(得分:4)

如果您可以访问所有切换按钮(例如,它们不是数据绑定),那么您可以通过将每个按钮的最小宽度绑定到其旁边的宽度来做一个巧妙的技巧。最后一个按钮绑定到第一个按钮:

<StackPanel Orientation="Horizontal">
    <Button x:Name="Button1" Content="Long text" MinWidth="{Binding ElementName=Button2, Path=ActualWidth}"/>
    <Button x:Name="Button2" Content="A" MinWidth="{Binding ElementName=Button3, Path=ActualWidth}"/>
    <Button x:Name="Button3" Content="Extremely long text that should cause this button to be really wide" MinWidth="{Binding ElementName=Button1, Path=ActualWidth}"/>
</StackPanel>

答案 2 :(得分:0)

在资源部分

创建一个以ToggleButtons为目标的样式,并将宽度设置为您想要的任何值。

<Window.Resources>
    <Style TargetType="{x:Type ToggleButton}">
        <Setter Property="Width" Value="50" />
    </Style>
</Window.Resources>

答案 3 :(得分:0)

在每列中使用一个带1个按钮的网格,然后像这样定义宽度