0

在 Wpf 中,我们有 SharedSizeGroup 属性来共享网格之间的大小,比如说列。有人知道 Silverlight 中的类似功能支持吗?

4

2 回答 2

0

共享大小最好使用 Silverlight 中的元素属性绑定来实现。只需让所有共享大小的元素绑定到另一个的宽度/高度。

参考以下:

<UserControl x:Class="SLTestApp.MainPage"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       xmlns:ext="clr-namespace:System.Windows.Controls.Extensions;assembly=System.Windows.Controls.Extensions"
       mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">

    <Grid x:Name="LayoutRoot" Background="White" ext:SharedSize.IsSharedSizeScope="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid x:Name="firstfirstGrid" Grid.Row="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"  ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.ColumnDefinitions>
            <Border BorderBrush="Green" BorderThickness="2">
                <TextBlock x:Name="txtFirstFirst" >
                    <Run>aa</Run>
                    <LineBreak />
                    <Run>aa</Run>
                </TextBlock>
            </Border>
        </Grid>
        <Grid x:Name="firstsecondGrid" Grid.Row="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"  ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.ColumnDefinitions>
            <Border BorderBrush="Blue" BorderThickness="2">
                <TextBlock Text="aaaaaaaaaaaaaaaa" />
            </Border>
        </Grid>

    </Grid>
</UserControl>

链接参考:

http://die-rooter.de/ITworks/archives/27-SharedSize-Grid-with-Silverlight.html

希望它有帮助。

于 2013-04-30T06:39:38.190 回答
0
<UserControl x:Class="SLTestApp.MainPage"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:ext="clr-namespace:System.Windows.Controls.Extensions;assembly=System.Windows.Controls.Extensions"
       mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">

    <Grid x:Name="LayoutRoot" Background="White" ext:SharedSize.IsSharedSizeScope="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid x:Name="firstfirstGrid" Grid.Row="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"  ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.ColumnDefinitions>
            <Border BorderBrush="Green" BorderThickness="2">
                <TextBlock x:Name="txtFirstFirst" >
                    <Run>aa</Run>
                    <LineBreak />
                    <Run>aa</Run>
                </TextBlock>
            </Border>
        </Grid>
        <Grid x:Name="firstsecondGrid" Grid.Row="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"  ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" ext:SharedSize.SharedSizeGroup="A"/>
            </Grid.ColumnDefinitions>
            <Border BorderBrush="Blue" BorderThickness="2">
                <TextBlock Text="aaaaaaaaaaaaaaaa" />
            </Border>
        </Grid>

    </Grid>
</UserControl>
于 2013-04-30T08:49:06.890 回答