我正在开发一个Silverlight的WP7应用程序。我几乎完成但是,我需要在纵向视图中插入新的用户控件作为横向根页面的子元素。 每个子元素(不包括此元素)都处于横向模式,无法更改。
当我在RootPage中将SupportedOrientation更改为PortrailorLandscape并在模拟器中将方向切换为纵向时,则切割出横向中的每个子元素。
这就是我所做的:
页面根代码:
<phone:PhoneApplicationPage
x:Class="app.Root"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Landscape" Orientation="LandscapeLeft"
mc:Ignorable="d" d:DesignHeight="480" d:DesignWidth="800" shell:SystemTray.IsVisible="False">
<Grid Width="800" Height="480" Loaded="RootGrid_Loaded">
<Popup x:Name="myPopup">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="480"/>
</Grid.RowDefinitions>
<Border x:Name="popupBorder"/>
</Grid>
</Popup>
<Canvas x:Name="ScreenRoot"
Visibility="Visible"
Width="800" Height="480">
<Canvas.Children/>
</Canvas>
</Grid>
</phone:PhoneApplicationPage>
然后用户控制作为ScreenRoot的孩子:
<UserControl
x:Class="app.Settings"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource OCRAExt}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="WhiteSmoke"
mc:Ignorable="d" d:DesignHeight="800" d:DesignWidth="480"
shell:SystemTray.IsVisible="False">
<Grid x:Name="SettingsRoot" Background="Black" Width="480" Height="800">
...
...
</Grid>
</UserControl>
用户控件在状态机中侦听他的状态,然后将自己添加为RootPage的Canvas。
请帮帮我:)。
答案 0 :(得分:0)
我不确定你真正想要做什么,但你可以尝试将RenderTransform应用到UserControl,以使其保持纵向模式。