[英]Border around a rotating image
基本上,我試圖做一些事情以使WPF圖像位於WPF邊框內,並定期通過更改RotateTransform Angle屬性來旋轉圖像。
問題是,當我旋轉圖像時,邊框不會旋轉,或嘗試更改以適應圖片的新形狀。 我嘗試將其Alignment屬性設置為拉伸,甚至將邊框的高度/寬度綁定到圖像的高度/寬度,但是沒有運氣。 我懷疑問題是,當我旋轉圖像時,它實際上並沒有改變Image對象的高度或寬度,因此,邊框當然不知道要做什么。
有沒有更好的方法來旋轉圖像以允許調整邊框的大小,如果沒有,考慮到我要更改RotateTransform Angle的情況,如何正確調整邊框的大小。
謝謝!
您可以為此使用LayoutTransform而不是RenderTransform。 如果您嘗試更改旋轉角度,則會看到邊框更改大小以適應它。 (想想這就是您的要求嗎?如果您實際上想旋轉邊框,那么可以旋轉邊框而不是圖像)
<Window x:Class="rotate.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Border VerticalAlignment="Center" HorizontalAlignment="Center" BorderBrush="Black" BorderThickness="1">
<Grid Background="Blue" Width="80" Height="80">
<Grid.LayoutTransform>
<RotateTransform Angle="10"/>
</Grid.LayoutTransform>
</Grid>
</Border>
</Grid>
</Window>
使用LayoutTransform
而不是RenderTranform
。
RenderTransform
僅對控件進行可視化轉換,並在測量和排列控件后應用。 因此,它不會影響其他控件看到的大小。
LayoutTransform
確實會影響對象的布局。 它是在測量和布置控件之前應用的,因此另一個控件會看到大小的變化。
注意: LayoutTransform
慢得多,通常不會提供平滑的動畫。
<Border BorderThickness="5" BorderBrush="Red" HorizontalAlignment="Center" VerticalAlignment="Center">
<Image Width="50" Height="50">
<Image.LayoutTransform>
<RotateTransform Angle="45" />
</Image.LayoutTransform>
</Image>
</Border>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.