在表单上放置旋转标签

时间:2013-11-07 11:40:39

标签: c# xaml rotation

我在正确放置物体时遇到问题,我想要实现角落色带,如下所示:

enter image description here

因为我的色带应该是整个窗体的1/5,所以我将其分成5列:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid Grid.ColumnSpan="5">
    </Grid>
    <Border Margin="0" BorderThickness="2" Height="auto" BorderBrush="White" Background="#FFE12727" HorizontalAlignment="Stretch" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto" Padding="0,0,6,0">
        <Border.RenderTransform>
            <CompositeTransform Rotation="-45"/>
        </Border.RenderTransform>
        <Viewbox VerticalAlignment="Center" Margin="50,15,50,10">
            <TextBlock VerticalAlignment="Center" Text="NEW HERE?"/>
        </Viewbox>
    </Border>
</Grid>

看起来像这样:

enter image description here

我应该如何设置边距,填充等,以便所有分辨率上的功能区保持在1张图片上?

或者以任何不同的方式实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用CenterX和CenterY属性设置对象的旋转中心。在你的情况下,旋转中心位于边框的中间 - 使用这些属性稍微玩一下它应该可以工作

例如,如果您希望100 x 100平方围绕其中心进行旋转,则可以将CenterX和CenterY属性设置为50。

http://msdn.microsoft.com/en-us/library/system.windows.media.compositetransform.rotation(v=vs.95).aspx