【发布时间】: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