首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格SharedSizeGroup不能在整个视图中工作。

网格SharedSizeGroup不能在整个视图中工作。
EN

Stack Overflow用户
提问于 2019-01-26 02:06:26
回答 2查看 331关注 0票数 0

我有一个简单的应用程序,我希望视图中的所有按钮都是相同大小的。这个代码的问题是,Grid Row 0中的所有按钮都是相同宽度的,但是Grid Row 2中的按钮并不相同。请帮帮忙。

我希望Grid 2中的按钮与Grid Row 0的宽度相同。(用这样的网格可以做到吗?)请不要告诉我一个统一的网格。我知道它适用于UniformGrid,我也不想绑定ElementName=so,所以,Path=ActualWidth)

代码语言:javascript
复制
<Grid Grid.IsSharedSizeScope="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" Grid.IsSharedSizeScope="True" x:Name="InstrumentOperationsPanel" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Button x:Name="PrimeButton" Grid.Column="0" Content="ABCD"/>
            <Button x:Name="FlushButton" Grid.Column="1" Content="ABCDEFGHIJKL"/>
            <Button Content="ABCD" Grid.Column="2"/>
            <Button x:Name="PrimeFlush3TimesButton" Grid.Column="3" Content="ABCD"/>

        </Grid>
        <Separator Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        </Separator>

        <Grid Grid.IsSharedSizeScope="True" x:Name="BuiltInUserActionPanelForQX200" Grid.Row="2" VerticalAlignment="Top">

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

            <Button x:Name="DRDiagnosticsButton" Grid.Column="0"
                Content="ABCD"></Button>
            <Button x:Name="QXFieldAgentButton" Grid.Column="1"
                Content="ABCD"></Button>
            <Button x:Name="QX200MTSButton" Grid.Column="2"
                Content="ABCD"></Button>
            <Button x:Name="QX200MTSDetectorButton" Grid.Column="3"
                Content="ABCD"></Button>
        </Grid>
    </Grid>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-26 10:25:24

你需要几个改变。

( a)在你的主网格中,

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

( b)在InstrumentOperationsPanel中,网格,删除Grid.IsSharedSizeScope

代码语言:javascript
复制
<Grid Grid.Row="0"  x:Name="InstrumentOperationsPanel">

( c)在BuiltInUserActionPanelForQX200网格中,删除Grid.IsSharedSizeScope

代码语言:javascript
复制
<Grid  x:Name="BuiltInUserActionPanelForQX200" Grid.Row="2" VerticalAlignment="Top">

你的整个Xaml看起来不像

代码语言:javascript
复制
<Grid Grid.IsSharedSizeScope="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0"  x:Name="InstrumentOperationsPanel">
            <Grid.ColumnDefinitions>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
                <ColumnDefinition SharedSizeGroup="A"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Button x:Name="PrimeButton" Grid.Column="0" Content="ABCD"/>
            <Button x:Name="FlushButton" Grid.Column="1" Content="ABCDEFGHIJKL"/>
            <Button Content="ABCD" Grid.Column="2"/>
            <Button x:Name="PrimeFlush3TimesButton" Grid.Column="3" Content="ABCD"/>

        </Grid>
        <Separator Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        </Separator>

        <Grid  x:Name="BuiltInUserActionPanelForQX200" Grid.Row="2" VerticalAlignment="Top">

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

            <Button x:Name="DRDiagnosticsButton" Grid.Column="0"
                Content="ABCD"></Button>
            <Button x:Name="QXFieldAgentButton" Grid.Column="1"
                Content="ABCD"></Button>
            <Button x:Name="QX200MTSButton" Grid.Column="2"
                Content="ABCD"></Button>
            <Button x:Name="QX200MTSDetectorButton" Grid.Column="3"
                Content="ABCD"></Button>
        </Grid>
    </Grid>

输出

票数 0
EN

Stack Overflow用户

发布于 2019-01-26 09:29:21

您应该只在最外层的网格上设置ISSharedSizeScope=True。

从内部网格中删除Grid.IsSharedSizeScope="True“(InstrumentOperationsPanel和BuiltInUserActionPanelForQX200)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54375075

复制
相关文章

相似问题

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