Silverlight:如何将按钮的宽度设置为最大可用空间?

时间:2014-04-22 01:04:47

标签: silverlight xaml

我对Silverlight UI开发相对缺乏经验,所以如果这个问题有明显的答案,请原谅我,但我一直无法在这里找到,或“在那里”。

我只想将按钮的宽度设置为可用的最大空间。这“基本上”是它的父母的宽度,虽然利润率等(两者)将发挥作用。

我有一个动态生成的按钮列表,在ItemsControl中,垂直排列,并希望它们全部用完父级中可用的全部宽度。我已经看到了将宽度绑定到父节点的示例,但我希望有一个更简洁的解决方案,因为滚动条,边距和其他元素导致父节点的宽度不理想。

这方面的任何建议都是有益的,也是值得赞赏的。

编辑:在回复发布XAML的请求时,我已经这样做了。

我最初使用的XAML(带有硬编码宽度):

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Height="500" Margin="0">
    <ItemsControl ItemsSource="{Binding SomeOptions}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel Margin="0,0,0,1">
                    <Button Content="{Binding OptionKey}" Height="Auto" Width="400" HorizontalContentAlignment="Left" />
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

现在,工作(使用“Stretch”),感谢接受的答案:

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Height="500" Margin="0">
    <ItemsControl ItemsSource="{Binding SomeOptions}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel Margin="0,0,0,1">
                    <Button Content="{Binding OptionKey}" Height="Auto" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" />
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

1 个答案:

答案 0 :(得分:1)

在按钮上,您可以设置Horizo​​ntalAlignment =“Stretch”,这会将按钮拉伸到父级的宽度。