共享大小组到不同父控件中的不同网格
本文关键字:控件 网格 共享 | 更新日期: 2023-09-27 18:26:06
所以,我有3个用户控件:
1. 第五节
<UserControl x:Class="NumberedMusicalScoresWriter.V.SectionV"...>
...
<Grid Background="{Binding BackgroundColor, Mode=OneWay}" Grid.IsSharedSizeScope="True">
...
<V:BarV Grid.Column="0" Grid.Row="0" DataContext="{Binding GClefBarVM, Mode=OneWay}"/>
<V:BarV Grid.Column="0" Grid.Row="2" DataContext="{Binding FClefBarVM, Mode=OneWay}"/>
</Grid>
...
2. BarV.xaml
<UserControl x:Class="NumberedMusicalScoresWriter.V.BarV"...>
...
<Grid Background="{Binding BackgroundColor, Mode=OneWay}">
...
<ItemsControl Grid.Column="0" Grid.Row="0"
ItemsSource="{Binding NotationGroupVMs, Mode=OneWay}">
...
<ItemsControl.ItemTemplate>
<DataTemplate>
<V:NotationGroupV/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
...
3. 符号组V.xaml
<UserControl x:Class="NumberedMusicalScoresWriter.V.NotationGroupV"...>
...
<Grid Background="{Binding BackgroundColor, Mode=OneWay}">
...
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" SharedSizeGroup="Mid"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
...
</Grid>
...
如您所见,NotationGroupV
是BarV
UserControl
的集合,而BarV
由SectionV
作为两个拥有。(SectionV
也用作其父控件的集合成员(
问题出在 NotationGroupV
的中心行高度上,它有 SharedSizeGroup="Mid"
。我想在应用程序中将其分享给其他NotationGroupV
。
所以,基本上,我想与不同父母的其他NotationGroupV
分享SharedSizeGroup
。
有人知道如何以这种方式暴露SharedSizeGroup
吗?
(请问什么澄清(
谢谢。
附言在此链接中,介绍了如何在不同的网格中共享它们,但在同一 xaml 中。
虽然我不能确定您的要求是否有效,但我可以确认,只要您将 Grid.IsSharedSizeScope
附加属性设置为True
您为其设置SharedSizeGroup
的两个Grid
的父容器控件,那么它应该可以工作。要确定答案,请尝试一下...您可能自己测试它的速度可能比您写这个问题所花费的时间更快。
如果目前没有父容器控件,只需添加一个....(把所有东西都放进去(。这里要注意的重要一点是,您只应该将Grid.IsSharedSizeScope
设置为True
单个父容器控件,而不是在每个Grid
上。