首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IsSharedSizeScope属性的WPF问题

IsSharedSizeScope属性的WPF问题
EN

Stack Overflow用户
提问于 2019-12-16 18:37:54
回答 1查看 41关注 0票数 0

如果在网格(父)级别将IsSharedSizeScope设置为true,并将StackPanel设置为子级,则IsSharedSizeScope属性将不起作用,但当我删除StackPanel时,它会起作用。我在试着理解我做错了什么。任何帮助都将不胜感激。

代码语言:javascript
复制
<Window x:Class="DemoWpfApp.Views.PortConnectionView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:DemoWpfApp.Views"
             xmlns:vm="clr-namespace:DemoWpfApp.ViewModels"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <Window.DataContext>
        <vm:PortConnectionViewModel/>
    </Window.DataContext>

    <Grid Grid.IsSharedSizeScope="True">

        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
            <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
            <ColumnDefinition Width="Auto" SharedSizeGroup="A" />
        </Grid.ColumnDefinitions>

        <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="3">
            <TextBlock Grid.Column="0" Text="Detect charger" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </StackPanel>

        <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="3">
            <TextBlock Grid.Column="0" Text="Configure meter" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </StackPanel>

        <StackPanel Grid.Row="3" Orientation="Horizontal" Margin="3">
            <TextBlock Grid.Column="0" Text="Activate charger" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </StackPanel>

        <StackPanel Grid.Row="4" Orientation="Horizontal" Margin="3">
            <TextBlock Grid.Column="1" Text="Upgrade version" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="2" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </StackPanel>

    </Grid>
</Window>
EN

回答 1

Stack Overflow用户

发布于 2019-12-16 19:40:38

TextBlocks上的Grid.Column无关紧要,因为它们并不直接位于Grid内部。清晰的问题陈述是解决方案的一半:将TextBlocks直接放入网格中(在适当的行中)。

代码语言:javascript
复制
<Grid Grid.IsSharedSizeScope="True">

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
        <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
        <ColumnDefinition Width="Auto" SharedSizeGroup="A" />
    </Grid.ColumnDefinitions>

    <TextBlock Grid.Row="1" Grid.Column="0" Text="Detect charger" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    <TextBlock Grid.Row="1" Grid.Column="1" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>

    <TextBlock Grid.Row="2" Grid.Column="0" Text="Configure meter" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    <TextBlock Grid.Row="2" Grid.Column="1" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>

    <TextBlock Grid.Row="3" Grid.Column="0" Text="Activate charger" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    <TextBlock Grid.Row="3"  Grid.Column="1" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>

    <TextBlock Grid.Row="4" Grid.Column="1" Text="Upgrade version" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    <TextBlock Grid.Row="4" Grid.Column="2" Text="Ok" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59354885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档