Установить прозрачное изображение в качестве фона окна, сохраняя при этом цвет фона - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь добавить изображение в качестве фона окна; изображение является прозрачным PNG. Моя проблема здесь заключается в том, что всякий раз, когда я устанавливаю изображение в качестве фона, оно покрывает любой цвет под ним, несмотря на то, что оно прозрачное, не показывая желаемый цвет фона. Когда я компилирую, результатом является окно с желаемым изображением в качестве фона с прозрачной частью, заменяемой черным цветом вместо того, чтобы показывать заданный мной цвет фона.

Мой код для MainWindows.xaml выглядит следующим образом:

<Window x:Class="Eorzea_Timers.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:Eorzea_Timers"
    mc:Ignorable="d"        
    Title="MainWindow" Height="667" Width="375">

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

<Window.Resources>
    <Style TargetType="Window">
        <Setter Property="Background" Value="White"/>
    </Style>
</Window.Resources>

<Grid>

</Grid>

Можно ли даже иметь то, что я хочу, или мне просто включить цветной фон в само изображение?

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Поместите элемент изображения в сетку:

<Window ... Background="White">
    <Grid>
        <Image Source="Background.png"/>
        <Grid>
            <!-- other elements here -->
        </Grid>
    </Grid>
</Window>

Или, если по какой-либо причине вам нужно использовать ImageBrush, используйте его в качестве фона сетки верхнего уровня:

<Window ... Background="White">
    <Grid>
        <Grid.Background>
            <ImageBrush ImageSource="Background.png"/>
        </Grid.Background>
        <Grid>
            <!-- other elements here -->
        </Grid>
    </Grid>
</Window>
0 голосов
/ 12 апреля 2019

Попробуйте использовать VisualBrush, создайте фигуру с желаемым цветом фона и поместите изображение поверх него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...