我正在开发Windows 8 C#/XAML .NET 4.5应用程序。
我有一个页面有的纵向定位(只有-我需要在这个方向的页面)。
在页面上,我是一个顶部的面板,下面是作为内容的页面的其余部分。内容需要由顺时针旋转90度,旋转的内容必须填充页面的其余部分。
我遇到的问题是,在我将内容旋转90度之后,并不是所有的东西都显示为。即使我将内容设置为正方形(相同的宽度和高度),并将其围绕中心旋转90度,也只有原来显示在屏幕上的部分被渲染。
简化示例:
<!-- SIMPLIFIED FOR BREVITY -->
<page with portrait orientation>
<Grid x:Name=Content>
<Grid.RowDefinitions>
<RowDefinition Height="120" /> <!-- TOP PANEL -->
<RowDefinition Height="*" /> <!-- REST OF THE CONTENT -->
</Grid.RowDefinitions>
<TopPanelControl />
<!-- I'M working with 480 x 800 page resolution -->
<!-- for the purpose of simplicity -->
<!-- But the page can be any size -->
<Grid x:Name="RotatedContent"
Background="Red"
RenderTransformOrigin="0.5,0.5"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Width="668"
Height="400"
Grid.Row="1">
<!-- EVEN IF THE HEIGHT IS 668, result is the same -->
<Grid.RenderTransform>
<RotateTransform Angle="90"/>
</Grid.RenderTransform>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0"
Grid.Column="0"
Text="000"
TextAlignment="Left"/>
<TextBlock Grid.Row="1"
Grid.Column="1"
Text="111"
TextAlignment="Center"/>
<TextBlock Grid.Row="2"
Grid.Column="2"
Text="222"
TextAlignment="Right"/>
</Grid>
</Grid>
</page>我的问题是:
如何将一个比屏幕更宽的控件旋转90度(但不是旋转时),然后显示IT整体(未剪裁)。
发布于 2014-12-29 19:54:52
ViewBox可以方便地扩展内容。将网格封装在ViewBox中。
XAML
<Viewbox Grid.Row='1'
Stretch='Uniform'
RenderTransformOrigin="0.5,0.5"
VerticalAlignment='Top'
HorizontalAlignment='Right'>
<Grid x:Name="RotatedContent"
Background="DarkRed"
Height='400'
Width='400'
Grid.Row='1'
RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<RotateTransform Angle="0" />
</Grid.RenderTransform>
...
</ViewboxScreenShots


发布于 2014-12-30 14:56:22
我已经通过使用画布控件找到了解决自己问题的方法。画布控件可以比手机屏幕更大,但是当旋转时,它上的所有内容都会被正确地呈现,而不需要剪裁(唯一的问题是背景)。我将在稍后完成更全面的回答,现在没有时间。
P.S.:如果有人想在我有时间之前写它,这个答案是要编辑的:)
https://stackoverflow.com/questions/27694186
复制相似问题