【问题标题】:Hiding Panorama Title in landscape mode [wp7]在横向模式下隐藏全景标题 [wp7]
【发布时间】:2010-11-27 21:19:46
【问题描述】:

我想在横向模式下隐藏标题<controls:Panorama Title="myTitle" Style="{StaticResource customStyle}">

我已经为其应用了自定义样式(下面的代码)并尝试执行此操作(基于自定义样式中的名称),但我收到错误,名称 TitleLayer 在当前上下文中不存在:

if ((e.Orientation == PageOrientation.LandscapeRight) || (e.Orientation == PageOrientation.LandscapeLeft))
{
    TitleLayer.Visibility = Visibility.Collapsed;
}

////////////// 用于查找的额外代码 ////////////////////

为此,我应用了自定义样式:

<phone:PhoneApplicationPage.Resources>
        <Style x:Key="customStyle" TargetType="controls:Panorama">
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <controlsPrimitives:PanoramaPanel x:Name="panel"/>
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="controls:Panorama">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <controlsPrimitives:PanningBackgroundLayer x:Name="BackgroundLayer" HorizontalAlignment="Left" Grid.RowSpan="2">
                                <Border x:Name="background" Background="{TemplateBinding Background}" CacheMode="BitmapCache"/>
                            </controlsPrimitives:PanningBackgroundLayer>
                            <controlsPrimitives:PanningTitleLayer x:Name="TitleLayer" CacheMode="BitmapCache" ContentTemplate="{TemplateBinding TitleTemplate}" Content="{TemplateBinding Title}" FontSize="187" FontFamily="{StaticResource PhoneFontFamilyLight}" HorizontalAlignment="Left" Margin="10,-76,0,9" Grid.Row="0"/>
                            <controlsPrimitives:PanningLayer x:Name="ItemsLayer" HorizontalAlignment="Left" Grid.Row="1">
                                <ItemsPresenter x:Name="items"/>
                            </controlsPrimitives:PanningLayer>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </phone:PhoneApplicationPage.Resources>

【问题讨论】:

  • 全景控件不适用于横向模式。您想这样做的原因是什么?
  • @Matt 灵活性,虽然我的应用最适合纵向,但作为开发人员,我也应该尊重带有横向滑出键盘的设备。

标签: c# xaml silverlight windows-phone-7


【解决方案1】:

在全景图中隐藏标题的方法如下:

Grid grid = VisualTreeHelper.GetChild(panorama, 0) as Grid;
FrameworkElement titleLayer = grid.FindName("TitleLayer") as FrameworkElement;
titleLayer.Visibility = System.Windows.Visibility.Collapsed;

但是,我建议阅读 WP7 设计指南。看起来您正在以不打算使用的方式使用全景图。全景图仅用作肖像。通常应用程序在全景图上不应有很多文本输入字段,因此不支持滑出键盘的横向应该没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2012-06-05
    • 2020-05-30
    相关资源
    最近更新 更多