微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

silverlight-2.0 – Silverlight Grid Splitter意外行为

我刚刚开始使用版本2.0的Silverlight.我想在页面显示一些数据网格,并通过将每个数据网格放入网格单元格来实现.然后我想我会尝试使用以下标记添加网格分割器:

<UserControl xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"  xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  x:Class="SilverlightApplication1.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
 Loaded="UserControl_Loaded">
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.ColumnDeFinitions>
            <ColumnDeFinition></ColumnDeFinition>
            <ColumnDeFinition Width="Auto"></ColumnDeFinition>
            <ColumnDeFinition></ColumnDeFinition>
        </Grid.ColumnDeFinitions>
        <Grid.RowDeFinitions>
            <RowDeFinition></RowDeFinition>
            <RowDeFinition></RowDeFinition>
        </Grid.RowDeFinitions>
        <basics:GridSplitter Grid.RowSpan="2" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Left" Width="5" VerticalAlignment="Stretch" ></basics:GridSplitter>
        <data:DataGrid Name="TLGrid" Grid.Row="0" Grid.Column="0">
        </data:DataGrid>
        <data:DataGrid Name="TRGrid" Grid.Row="0" Grid.Column="2">
        </data:DataGrid>
        <data:DataGrid Name="BLGrid" Grid.Row="1" Grid.Column="0">
        </data:DataGrid>
        <data:DataGrid Name="BRGrid" Grid.Row="1" Grid.Column="2">
        </data:DataGrid>
    </Grid>
</UserControl>

我希望能够拖动分割器来调整其他两列的大小.当我拖动栏时,其他两列都缩小了.有谁能解释为什么?

解决方法

您不需要gridplitter的中间列.如果将拆分器放在第0列,Gridsplitter将绑定到第0列的右边缘.您可以在左侧的网格中添加一个小边距,这样就不会丢失最后5个像素.

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.ColumnDeFinitions>
        <ColumnDeFinition Width="1*"/>
        <!--<ColumnDeFinition Width="Auto"/>-->
        <ColumnDeFinition Width="1*"/>
    </Grid.ColumnDeFinitions>
    <Grid.RowDeFinitions>
        <RowDeFinition Height="1*"/>
        <RowDeFinition Height="1*"/>
    </Grid.RowDeFinitions>

    <data:DataGrid Name="TLGrid" Grid.Row="0" Grid.Column="0" />
    <data:DataGrid Name="BLGrid" Grid.Row="1" Grid.Column="0"/>

    <!-- Moved the grid splitter to column 0 -->
    <basics:GridSplitter Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" Width="5" />

    <data:DataGrid Name="TRGrid" Grid.Row="0" Grid.Column="2" />
    <data:DataGrid Name="BRGrid" Grid.Row="1" Grid.Column="2" />        
</Grid>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐