如何在WPF应用程序中设置和定位背景图像

时间:2014-12-17 21:28:14

标签: wpf xaml view wpf-controls background-image

我需要在主窗口背景中添加图像。 这就是我所拥有的

<Window.Background>
    <ImageBrush Stretch="None" AlignmentX="Center" AlignmentY="Center">
        <ImageBrush.Transform>
            <ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
        </ImageBrush.Transform>

        <ImageBrush.ImageSource>
            <BitmapImage UriSource="/Assets/welcome.jpg"/>
        </ImageBrush.ImageSource>
    </ImageBrush>
</Window.Background>

由于某种原因,我的背景中未使用的空间变得全黑,这部分代码 enter image description here

所以我有两个问题

  1. 是什么导致背景全黑,我该如何解决?
  2. 我将Alignments添加到我的ImageBrush中,为什么图像不居中?

1 个答案:

答案 0 :(得分:2)

为了在Image应用程序中准确定位WPF(或任何其他控件),建议在XAML中创建布局网格,并将内容放在适当的单元格中,可以居中,或放置在任何区域(如本例中,图像出现在右下角:http://www.shopdigit.com/Pericles-TTS-14-for-Win-TTS-14-01.htm)。

以下示例代码段演示了此技术:

<Window x:Class="YourClass.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="YourTitle"
        ShowInTaskbar="True"
        WindowStartupLocation="CenterScreen">

    <!-- main layout grid-->
    <Grid>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="10*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="10*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

        <TextBlock Grid.Row="1" Grid.Column="1">
                 <Image Margin="0,0,5,5" Source="[path to your image]" />
        </TextBlock>

    </Grid>
</Window>

希望这会有所帮助。最好的问候,