c# - 列表框在 xaml 查看器中看起来与在程序窗口中不同
问题描述
我正在开发一个 WPF 应用程序,我遇到了以下问题,但直到现在都忽略了它。
我想在它上面显示一个列表框和一个标签。为此,我有以下 XAML 代码:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="1" Content="Packs" Margin="60, 65, 60, 0"/>
<ListBox Grid.Column="1" Height="200" Width="150"/>
</Grid>
您可以忽略左侧的按钮。如您所见,标签就在列表框的顶部。
现在,当我打开我的程序时,该窗口使列表框看起来像是在标签之上。
我尝试了很多重新排列 XAML 代码以不同方式显示它,但这个问题保持不变,虽然我可以通过使用对设计器来说太大的值来绕过它,但它仍然困扰着我,我找不到解决方案。
另外请记住,我的程序不会调整大小,所以不要担心。
谢谢您的回答!
解决方案
您可以将标签和列表框放在另一个面板(StackPanel)中,并将该面板与外部网格对齐:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1"
Width="150"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<Label Content="Packs"/>
<ListBox Height="200"/>
</StackPanel>
</Grid>
这样,即使调整窗口大小,两个元素都将位于中间列的中心。
推荐阅读
- reactjs - 等效于 React.memo 的 Typescript 泛型类
- javascript - 点击搜索栏转到链接
- android - 在 Frida 中查看 Android 函数的反编译代码
- c# - 从 IOrderedQueryable 转换 IQueryable
- java - 带有 Keycloak 的 Spring 应用程序返回 401 错误
- c# - 在 EntityFramework Core + npgsql 中填充新添加的计算列
- c# - 如何正确反序列化具有默认分配的元组属性?
- python - 使用 azure face api 进行实时人脸检测时的性能问题
- java - Hibernate 抛出托管刷新异常
- javascript - Select2 不允许我滚动查看其余选项