Microsoft UWP app - 设置窗口大小以匹配背景图像

时间:2017-10-03 05:43:32

标签: c# image xaml uwp uwp-xaml

这可能很简单,但我无法弄明白(对UWP来说)...

我有一个想用作我的应用程序背景的图像(它实际上仅用于桌面 - 我不担心手机等)。

我只是想设置窗口的大小,以便应用程序以特定大小开始,图像位于其中而不进行缩放。

有意义吗?

应该很容易 - 我已经在Windows Forms中完成了它并且非常直接......

我尝试过设置窗口的大小(与图像大小相同):

ApplicationView.PreferredLaunchViewSize = new Size(Height = 800, Width = 525);

但是无论我调整什么设置 - 无论是图像属性还是网格尺寸等,图像似乎都没有正确地放在其中???

在XAML设计视图中,它看起来都很好(对我来说):

enter image description here

但是当你运行应用程序时,它不是:

enter image description here

要求的XAML代码:

<Page
    x:Class="UWP_Test.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWP_Test"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid>
        <Image Source="Assets/titlescreen.bmp" Opacity="0.5" VerticalAlignment="Center" HorizontalAlignment="Center"></Image>
    </Grid>
</Page>

XAML.CS代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

namespace UWP_Test
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            // Set the app window preferred launch view size
            ApplicationView.PreferredLaunchViewSize = new Size(Height = 800, Width = 525);

            // Set app window preferred launch windowing mode
            ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;


    }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            // move to Start page
            this.Frame.Navigate(typeof(Start));
        }
    }
}

我确信它很简单。

我添加了一些图片

帮我堆栈溢出......你是我唯一的希望......

3 个答案:

答案 0 :(得分:1)

虽然它完全没有用,但为什么不将Stretch属性设置为UniformToFill?

<Grid>
    <Image Source="Assets/titlescreen.bmp" Opacity="0.5" Stretch="UniformToFill"></Image>
</Grid>

答案 1 :(得分:0)

您可以为网格背景设置ImageBrush,如下面的代码:

<Grid>
    <Grid.Background>
        <ImageBrush ImageSource="Assets/pander.jpg" Stretch="UniformToFill"></ImageBrush>
    </Grid.Background>
</Grid>

enter image description here enter image description here

答案 2 :(得分:0)

感谢所有的建议,但我发现了什么问题。

问题是我用来设置窗口大小的这段代码中的括号:

ApplicationView.PreferredLaunchViewSize = new Size(Height = 800, Width = 525);

他们需要像这样的花括号:

ApplicationView.PreferredLaunchViewSize = new Size { Height = 525, Width = 840 };

一旦我改变了它,现在工作正常。

Visual Studio没有强调这些是错误的括号,这有点奇怪吗?该应用程序编译并运行良好,没有错误??

问题解决了

由于