2

我在 Windows Phone 8 的 XAML 中定义了以下页面

<phone:PhoneApplicationPage x:Class="MangaRack.View.Phone.View.ChapterView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    shell:SystemTray.IsVisible="False">
    <Grid Background="White">
        <Button BorderThickness="0" Name="ImageButton" Padding="0">
            <Image Name="Image" />
        </Button>
    </Grid>
</phone:PhoneApplicationPage>

网格定义了一个应用于整个屏幕的白色背景,但是网格的内容不在窗口边缘附近,在图像和窗口边缘之间有一个可观察的边距/填充。如何确保图像直接靠在窗口边缘

4

2 回答 2

3

尝试设置您的图像Stretch属性:

<Image Name="Image" Stretch="UniformToFill"/>

有关更多信息,请参阅有关图像拉伸的 MSDN 页面

此外,您的按钮将在您的图像周围添加一些“填充”。为避免这种情况,您将不得不更改其模板。我会将模板替换为仅呈现内容的模板:

     <Button>
         <Button.Template>
            <ControlTemplate TargetType="Button">
                <StackPanel x:Name="stackPanel" Orientation="Horizontal">
                    <ContentPresenter VerticalAlignment="Bottom"/>
                </StackPanel>
            </ControlTemplate>
         </Button.Template>
        <Image Name="Image" Stretch="UniformToFill"/>
      </Button>

虽然,如果您完全删除按钮“chrome”,您也可以直接使用图像并处理图像上的点击/单击事件。

于 2013-03-13T13:31:24.530 回答
0

您可以将图像放在网格内,以便全屏显示这是 C# 编码

    System.Windows.Media.ImageBrush myBrush = new System.Windows.Media.ImageBrush();
        Image image = new Image();
        image.ImageFailed += (s, i) => MessageBox.Show("Failed to load: " + i.ErrorException.Message);
        image.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"/Assets/bg/bg5.jpg/", UriKind.RelativeOrAbsolute));
        myBrush.ImageSource = image.Source;
        grid1.Background = myBrush;
于 2013-03-25T13:53:30.133 回答