当WP7页面更改为横向时更改背景位置

时间:2011-03-28 17:07:18

标签: xaml windows-phone-7

我正在开发一个Windows Phone 7项目,其中包含MainPage上的全景图和多个简单页面。我的所有页面都有这样的背景设置:

<local:PhoneApplicationPage>
    <Grid Background="{StaticResource PageBackground}">
        content here
    </Grid>
</local:PhoneApplicationPage>

PageBackground是一个以default.xaml和light.xaml设置的应用程序资源:

<ImageBrush x:Key="PanoramaBackground" ImageSource="/Resources/PanoramaBackground01Dark.jpg" Stretch="None" />
<ImageBrush x:Key="PageBackground" ImageSource="/Resources/PageBackground01Dark.jpg" Stretch="None" />

PageBackground01Dark.jpg图片尺寸为800x800像素。

当页面以纵向方向显示时,图片会在水平方向上正确居中,图片高度对应于页面高度。这很好。

Background in Portrait page

当页面以横向方向显示时,图片宽度对应于页面宽度,但图片则垂直居中

Background in Landscape page

我希望我的背景图片在页面中“突出”。

Grid的Background属性是一个没有任何有趣选项的画笔。我不想为此创建2张图片。应该有一个明显的解决方案。这是我想要的结果:

Desired background result

1 个答案:

答案 0 :(得分:1)

哦,解决方案很简单。 Background属性是Brush类型,但它实际上是一个ImageBrush。所以解决方案是:

<ImageBrush x:Key="PageBackground" 
            ImageSource="/Resources/PageBackground01Dark.jpg"
            AlignmentY="0" />