我正在尝试修改PanoramaItem内容大小,使其没有边距,并拉伸整个屏幕的宽度/高度。到目前为止,我还没有幸运地尝试修改模板的副本。负边距可以处理左侧/顶部,但下一个全景项目总是从右侧边缘偷看,即使我设法拉伸了一个全景项目,下一个项目也会重叠在屏幕的右侧。
任何想法如何修改全景项目,使实际的全景项目采取整个屏幕(800x480)和后续的全景项目总是480px从前一个全景项目的左侧,以便您看不到下一个项目的一部分。
为什么要修改全景图?因为这个控件有内置的功能,可以完成我想让它做的所有事情(我正在构建一个支持轻击手势的全屏图片查看器)。我会简单地希望全景项目的是全屏的,然后把图像放在里面,取整个容器的大小(全屏)
全景架构http://msdn.microsoft.com/en-us/library/ff941126%28v=vs.92%29.aspx
发布于 2013-05-24 10:27:15
C#
public class PanoramaFullScreen : Panorama
{
protected override System.Windows.Size MeasureOverride(System.Windows.Size availableSize)
{
availableSize.Width += 48;
return base.MeasureOverride(availableSize);
}
}XAML
<Style x:Key="PanoramaItemStyle1" TargetType="phone:PanoramaItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="phone:PanoramaItem">
<Grid Background="{TemplateBinding Background}" Margin="0,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentControl x:Name="header" CharacterSpacing="-35" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" FontSize="66" FontFamily="{StaticResource PhoneFontFamilySemiLight}" HorizontalAlignment="Left" Margin="12,-2,0,38">
<ContentControl.RenderTransform>
<TranslateTransform x:Name="headerTransform"/>
</ContentControl.RenderTransform>
</ContentControl>
<ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Grid.Row="1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ItemContainerStyle="{StaticResource PanoramaItemStyle1}"发布于 2012-03-30 01:32:11
您可以尝试将透视与空标题、标题和项目标题一起使用,而不是使用全景。它也将支持flick。
https://stackoverflow.com/questions/9920375
复制相似问题