Har*_*dev 3 silverlight layout windows-phone-7 panorama-control
我正在尝试修改PanoramaItem内容大小,使其没有边距并拉伸整个屏幕宽度/高度.到目前为止,我没有运气试图修改模板的副本.负边距可以处理左/上,但下一个全景项目总是从右边缘偷看,即使我设法拉伸全景项目,下一个全景项目在屏幕右侧重叠.
任何想法如何修改全景图,以便实际的panoramaitem占据整个屏幕(800x480)和以下全景项目总是从前一个panoramaitem的左侧480px,这样你就看不到下一个项目的一部分.
为什么我要修改全景图?因为控件具有内置功能,可以完成我想要它做的所有事情(我正在构建一个支持轻弹手势的全屏图片查看器).我只想让panoramaitem全屏,然后将图像放在容器的整个大小内(全屏)
全景架构 http://msdn.microsoft.com/en-us/library/ff941126%28v=vs.92%29.aspx
小智 8
C#
public class PanoramaFullScreen : Panorama
{
protected override System.Windows.Size MeasureOverride(System.Windows.Size availableSize)
{
availableSize.Width += 48;
return base.MeasureOverride(availableSize);
}
}
Run Code Online (Sandbox Code Playgroud)
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}"
Run Code Online (Sandbox Code Playgroud)