我有一个简单的应用程序,我希望视图中的所有按钮都是相同大小的。这个代码的问题是,Grid Row 0中的所有按钮都是相同宽度的,但是Grid Row 2中的按钮并不相同。请帮帮忙。
我希望Grid 2中的按钮与Grid Row 0的宽度相同。(用这样的网格可以做到吗?)请不要告诉我一个统一的网格。我知道它适用于UniformGrid,我也不想绑定ElementName=so,所以,Path=ActualWidth)
<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>发布于 2019-01-26 10:25:24
你需要几个改变。
( a)在你的主网格中,
<Grid Grid.IsSharedSizeScope="True">( b)在InstrumentOperationsPanel中,网格,删除Grid.IsSharedSizeScope
<Grid Grid.Row="0" x:Name="InstrumentOperationsPanel">( c)在BuiltInUserActionPanelForQX200网格中,删除Grid.IsSharedSizeScope
<Grid x:Name="BuiltInUserActionPanelForQX200" Grid.Row="2" VerticalAlignment="Top">你的整个Xaml看起来不像
<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>输出

发布于 2019-01-26 09:29:21
您应该只在最外层的网格上设置ISSharedSizeScope=True。
从内部网格中删除Grid.IsSharedSizeScope="True“(InstrumentOperationsPanel和BuiltInUserActionPanelForQX200)
https://stackoverflow.com/questions/54375075
复制相似问题