C# 将其中一个元素旋转到WPF时将其保持在一起
如何旋转StackPanel或其他容器中的一个项目并保持对齐 我想做的是有一个标签,标签上有项目的名称,文本上下排列,结果值将在它的正下方不旋转。原因是项目名称很长,但结果只是一个1或2位数字,因此如果标签上下移动,我可以在屏幕上压缩更多数据 似乎项目围绕其原始位置(左上?)旋转,而不是围绕其中心旋转,因此,在项目原始位置下方居中的项目最终会偏侧,但旋转项目的高度和宽度之间的差异 以下是我迄今为止尝试过的代码:C# 将其中一个元素旋转到WPF时将其保持在一起,c#,wpf,xaml,C#,Wpf,Xaml,如何旋转StackPanel或其他容器中的一个项目并保持对齐 我想做的是有一个标签,标签上有项目的名称,文本上下排列,结果值将在它的正下方不旋转。原因是项目名称很长,但结果只是一个1或2位数字,因此如果标签上下移动,我可以在屏幕上压缩更多数据 似乎项目围绕其原始位置(左上?)旋转,而不是围绕其中心旋转,因此,在项目原始位置下方居中的项目最终会偏侧,但旋转项目的高度和宽度之间的差异 以下是我迄今为止尝试过的代码: <StackPanel Orientation="Vertical" Marg
<StackPanel Orientation="Vertical" Margin="0, 0, 0, 0">
<Label Name="x" Content="{Binding Path=SummarizedTestName}" Height="50" HorizontalAlignment="Center" FontSize="14">
<Label.RenderTransform>
<RotateTransform Angle="-90" />
</Label.RenderTransform>
</Label>
<Label Content="{Binding Path=Count}" Width="50" HorizontalAlignment="Center" FontSize="14" />
</StackPanel>
我曾想过使用TransformGroup,但问题是SummaredTestName字符串的长度在编译时是未知的(使用实体框架从数据库中提取)。我也尝试过水平对齐和垂直对齐的变体,但由于事物旋转的方式,它们似乎都不起作用。您可以尝试使用该属性,而不是渲染转换。由于RenderTransform
在解析布局后旋转名称标签,因此计数标签的位置与名称标签仍然是水平的一样
使用LayoutTransform
将在布局解析之前旋转名称标签,计数标签应排列整齐。您可以尝试使用该属性而不是RenderTransform
。由于RenderTransform
在解析布局后旋转名称标签,因此计数标签的位置与名称标签仍然是水平的一样
使用LayoutTransform
可以在布局解析之前旋转名称标签,计数标签应该排列整齐。使用Eren的答案解决了这个问题。结果如下:
在使用LayoutTransform之后,这方面的代码非常简单明了:
<StackPanel Orientation="Vertical" >
<Label Name="x" Content="{Binding Path=SummarizedTestName}" FontSize="14" HorizontalAlignment="Left" Margin="0, 0, 0, 10" >
<Label.LayoutTransform>
<RotateTransform Angle="90" />
</Label.LayoutTransform>
</Label>
<Label Content="{Binding Path=Count}" FontSize="14" HorizontalAlignment="Right" VerticalAlignment="top" Width="50" />
</StackPanel>
谢谢你,埃伦!有人给他投票,因为我还不能;) 用埃伦的答案解决了这个问题。结果如下:
在使用LayoutTransform之后,这方面的代码非常简单明了:
<StackPanel Orientation="Vertical" >
<Label Name="x" Content="{Binding Path=SummarizedTestName}" FontSize="14" HorizontalAlignment="Left" Margin="0, 0, 0, 10" >
<Label.LayoutTransform>
<RotateTransform Angle="90" />
</Label.LayoutTransform>
</Label>
<Label Content="{Binding Path=Count}" FontSize="14" HorizontalAlignment="Right" VerticalAlignment="top" Width="50" />
</StackPanel>
谢谢你,埃伦!有人给他投票,因为我还不能;) 这完全正确。我没有意识到布局和渲染变换之间的区别,因为在过去我只移动一个物体,而不是两个相互关联的物体。我将把我的工作代码粘贴到下面。这完全正确。我没有意识到布局和渲染变换之间的区别,因为在过去我只移动一个物体,而不是两个相互关联的物体。我将在下面粘贴我的工作代码。