簡體   English   中英

旋轉圖像周圍的邊框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM