2012-04-21 76 views
0

我正在Silverlight中开发WP7应用程序。我差不多完成了,但是我需要在纵向视图中插入新的用户控件作为横向根页面的子元素。 每个子元素(不包括此)都处于横向模式,并且不能更改。向横向页面添加纵向子元素

当我将SupportOrientation更改为RootPage中的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。

请帮我:)

回答