我对C#和WPF还是很陌生。我正在制作一个小的照片查看器。我希望有一个照片网格,在其中可以根据用户首选项和屏幕尺寸来更改列数和图片大小。我可以在设计时做所有我想做的事情,但是我找不到在运行时如何更改某些属性的方法。 特别是,我需要更改UniforGrid的列数以及图像的宽度和高度。
<ListView x:Name="LVMiniaturasGrandes" Margin="23,10,464,270.5" Background="#FF272727" Foreground="White" Visibility="Hidden" BorderBrush="{x:Null}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="4" HorizontalAlignment="Stretch"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<ItemsControl Padding="10">
<StackPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Image Source="{Binding ImagenGrande2}" Width="200" Height="200" HorizontalAlignment="Stretch" VerticalAlignment="Top" Stretch="Uniform" />
<StackPanel Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<TextBlock Text="{Binding NombreFichero}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Foreground="White" />
<TextBlock Text="{Binding VerEstrellas}" Foreground="Red" TextAlignment="Right" HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
</StackPanel>
</StackPanel>
</ItemsControl>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我希望能够同时改变列数以及图像的高度和宽度,具体取决于滑块控制位置和屏幕的实际像素大小。
欢迎任何帮助。预先感谢。
编辑:
我已经能够修改UniformGrid中的列数。它可能不是很优雅,但是可以工作。但是我仍然无法访问图像的宽度和高度。
private void RejillaImagenesGrandes_Initialized(object sender, EventArgs e)
{
_UGImagenesGrandes = (UniformGrid)sender;
}
这样,我可以访问UniformGrid并动态修改列数