Задать фоновое изображение в WPF? - PullRequest
5 голосов
/ 25 января 2012

Я пытаюсь создать фоновое изображение для элемента управления изображением в WPF, например, если я загружу прозрачный PNG, я все равно смогу увидеть фон. Возможно ли это, или Microsoft полностью отказалась от этой функции с WPF, и мне приходится полагаться на StackPanels / Grids / What What для этого?

Ответы [ 3 ]

13 голосов
/ 25 января 2012

Image не имеет свойства, позволяющего это сделать, просто поместите Image в Border и установите Border.Background в ImageBrush.

5 голосов
/ 25 января 2012

Нет, вам нужно изображения.Установите фон окна для изображения и установите фон корневого элемента для изображения

<Window.Background>
    <ImageBrush ImageSource="BackgroundImage.png"/>
</Window.Background>

<Grid.Background>
    <ImageBrush ImageSource="ForegroundImage.png"/>    
</Grid.Background>
2 голосов
/ 23 декабря 2013

Как показано в тестируемом коде, установите для фона окна кисть изображения. Обратите внимание: AllowsTransparency = "True" И WindowStyle = "None" для удаления границы.

<Window x:Class="khaosInstallerWPF.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="616" Width="773" 
    ResizeMode="NoResize" Icon="images/khaos_Installer_UI.png" 
    AllowsTransparency="True" WindowStyle="None">
    <Window.Background>
        <ImageBrush ImageSource="images\khaos_Installer_UI.png"/>
    </Window.Background>
    <Grid Margin="0,0,0,0"></Grid>
</Window>

Бонус: если вы используете фигуру, убедитесь, что ваша форма перетаскивается

namespace khaosInstallerWPF
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            MouseDown += delegate { DragMove(); };
        }
    }
}
...