c# - 如何为 WPF 网格中的所有元素设置特定的高度/宽度?

标签 c# wpf

我有一个自定义列表框,其中每个项目都有一个定义的网格,在其中显示框。我可以使用 SharedSizeGroup 属性将宽度设置为相同的长度。但是,如何为父 ListBox 元素中的所有这些项目共享此属性?

我也尝试在 ListBox 元素上设置属性,但这不起作用。

<ListBox
    ItemContainerStyle="{StaticResource MyStyle}"...>

<Style x:Key="MyStyle" TargetType="ListBoxItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
                <Grid Grid.IsSharedSizeScope="True">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                    </Grid.ColumnDefinitions>
                    <Border Grid.Column="0">
                        <TextBlock Text="{Binding PropertyA}" />
                    </Border>
                    <Border Grid.Column="1">
                        <TextBlock Text="{Binding PropertyB}" />
                    </Border>
                    <Border Grid.Column="2">
                        <TextBlock Text="{Binding PropertyC}" />
                    </Border>
                </Grid>

最佳答案

不要在 Grid 上设置属性 Grid.IsSharedSizeScope="True",而是在列表框中设置它,如下所示 -

 <ListBox Grid.IsSharedSizeScope="True">

并将其从网格中删除。

这将使所有listboxItems共享相同的大小,而不是单个项目。

关于c# - 如何为 WPF 网格中的所有元素设置特定的高度/宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543197/

相关文章:

wpf - 使用 FlowDocumentScrollViewer 打印所有页面

wpf - 从 View 模型类调用 RichTextBox.ScrollToEnd()

具有 MVVM 和用户控件的 WPF 数据绑定(bind)

c# - 如何触发订阅错误以测试 exchange web 服务的恢复

c# - 使用 dot net 或任何其他语言在内存中进行 ghostscript 转换

c# - 处理 Neo4jClient 查询结果中的多列

c# - 从头开始显示 TextBox 的选定文本

c# - 如何使用 Resharper 重新排序类型成员?

c# - 如何在 WPF 中使用 MVVM 实现过滤器框

c# - 在 Entity Framework 中使用带参数的存储过程