將它放在網格中,然後將矩形放在同一行和列中。並使用轉換器獲得80%的大小。
XAML:
<Window.Resources>
<local:RectangleSizeConverter x:Key="RectangleSizeConverter" />
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image x:Name="image" Grid.Row="0" Grid.Column="0" Source="C:\on.jpg" />
<Rectangle Height="{Binding ElementName=image, Path=ActualHeight, Converter={StaticResource RectangleSizeConverter}}"
Width="{Binding ElementName=image, Path=ActualWidth, Converter={StaticResource RectangleSizeConverter}}"
Fill="Red" Opacity=".5" />
</Grid>
C#(轉換器):
public class RectangleSizeConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return System.Convert.ToDouble(value) * .8;
}
public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new System.NotImplementedException();
}
#endregion
}
您是否需要根據資源動態調整圖像大小,或者您是否設置了固定大小或拉伸以填充另一個領域? – 2009-10-13 14:17:34
圖像的像素大小始終相同,但視圖中的可用空間是動態的。 – adrianm 2009-10-13 19:48:07