WPF布局,我可以清理一下吗?

时间:2011-07-30 16:58:01

标签: wpf xaml layout controls grid

请注意,我是WPF的新手。

我正在我的WPF应用中创建一个侧边栏并想要圆角。我学到的不是你可以附加到网格的属性。此外,我尝试将文本块放在边框控件中,但我收到的错误消息说:“Child只能设置一次”。

下面是我到目前为止的代码,但我不喜欢将我的文本块嵌套在一个嵌套在网格中的嵌入式窗格中,嵌套在一个嵌套在父网格中的边框中。有什么方法可以清理它吗? (如果没有,再也不用担心了,并且只是想让我的xaml尽可能有组织)

<Grid Style="{StaticResource SideBar}">
    <Border Style="{StaticResource RoundedSidebar}">
       <Grid>
            <StackPanel Orientation="Vertical" VerticalAlignment="Top">
                <TextBlock />
                <TextBlock />
                <TextBlock />
             </StackPanel>
       </Grid>
    </Border>
</Grid>

非常感谢任何反馈。

由于

2 个答案:

答案 0 :(得分:2)

如果在该outter Grid元素中没有除边框之外的任何元素,则可以为初学者删除该元素。

此外,你现在拥有边框的方式,StackPanel是边框内Grid的唯一元素,你也可以删除那个网格......

最后,您不需要设置Orientation属性,因为Vertical是默认设置,在StackPanel中堆叠TextBlocks和其他元素是完全正常的,毕竟它的目的是......

答案 1 :(得分:1)

没有太多要清理的东西。这就是我要做的事情:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="auto"/>
    </Grid.ColumnDefinitions>
    <Border Style="{StaticResource RoundedSidebar}" Grid.Column="1">
        <StackPanel Orientation="Vertical" VerticalAlignment="Top">
            <TextBlock />
            <TextBlock />
            <TextBlock />
         </StackPanel>
    </Border>
</Grid>