是否可以链接两个ViewBox,以便它们始终使用相同的比例因子? 或者是否可以提取ViewBox的当前比例因子以在另一个元素的ScaleTransform中使用?
谢谢。
答案 0 :(得分:0)
我想到了一个主意。我认为我们可以利用Grid的SharedSizeGroup
功能来做到这一点。
这是一个简单的示例。
<ListBox Grid.IsSharedSizeScope="True" ItemsSource="{Binding}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Viewbox Margin="5" Stretch="Uniform">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="col"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="row"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Name}"/>
</Grid>
</Viewbox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
public partial class Test2 : Window
{
public Test2()
{
InitializeComponent();
DataContext = new List<MyClass2>()
{
new MyClass2(){Name="A"},
new MyClass2(){Name="BB"},
new MyClass2(){Name="CCCCCCCCCCCC"},
new MyClass2(){Name="DDD"},
new MyClass2(){Name="EEEEEEE"}
};
}
}
class MyClass2
{
public string Name { get; set; }
}