我正在尝试将图像绑定Width
到其ActualHeight
(高度由布局决定,我希望它是方形的 - 如果有更好的方法,我很乐意听到)。
这是我的 XAML:
<Grid Grid.Row="1" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Image x:Name="favImage1" Source="{Binding Controller.FailStorage.FailRoamingStorage.Favorites[0].ImageUri}" Grid.Column="0" Grid.Row="0" Style="{StaticResource FavoriteImageStyle}" Width="{Binding ActualHeight, ElementName=favImage1, Mode=OneWay}"/>
</Grid>
样式定义如下:
<Style x:Key="FavoriteImageStyle" TargetType="Image">
<Setter Property="Stretch" Value="UniformToFill"/>
<Setter Property="Margin" Value="0,0,12,12"/>
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
</Style>
现在,这部分工作 - 将项目添加到集合后导航回页面似乎工作。
但是任何加载或后续导航到页面都会使图像不显示。
有趣的是,加载后,图像的 ActualWidth 不是 ActualHeight。少了。网格的宽度甚至更小......这很奇怪......
favImage1.ActualWidth
185.13514709472656
favImage1.ActualHeight
274.0
((FrameworkElement)favImage1.Parent).ActualWidth
138.0
这样做的正确方法是什么?