我想创建一个左侧有一个列表框的应用程序(我将其设置为使其看起来更好)。
在右侧,我想要一个可以添加控件等的区域
所以问题是我需要做什么才能将Window分成两个不相等的部分 (左侧约350像素宽,高度应该是整个窗口),其余部分用于我的“画布”。
答案 0 :(得分:6)
您可以使用Grid:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350" /> <!-- Or Auto -->
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox Grid.Column="0" />
<Canvas Grid.Column="1" />
</Grid>
或者您可以使用DockPanel:
<DockPanel>
<ListBox DockPanel.Dock="Left" Width="350" />
<Canvas />
</DockPanel>
网格的好处是您可以更好地控制布局,并允许最终用户使用GridSplitter动态调整列的大小。
答案 1 :(得分:4)
CodeNaked的解决方案的另一种方法是使用DockPanel,其中Canvas占用自动留下的所有空间,而不必计算拆分。
当然这有限制只能对接到四个边缘(有可能在边缘堆叠)但我倾向于在制作初始UI时更喜欢DockPanel,因为它们相对于快速且易于设置网格设置可以很快地复杂化。
<DockPanel LastChildFill="True">
<ListBox DockPanel.Dock="Left" Width="350"/>
<Canvas />
</DockPanel>