在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景。 在WPF 利用Expression Blend工具如何达到这种效果呢?比如我们想做一个登陆窗体界面,界面效果如下图所示: 下面我就大概说下过程,首页建立一个工程为WpfLoginView,并在Expression Blend 下设
  

  在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景。

  在WPF 利用Expression Blend工具如何达到这种效果呢?比如我们想做一个登陆窗体界面,界面效果如下图所示:

  

  下面我就大概说下过程,首页建立一个工程为WpfLoginView,并在Expression Blend 下设置一个如下图的界面

  

  xaml代码如下:

<Window
    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"
    x:Class="WpfLoginView.LoginView"
    x:Name="Window"
    Title="LoginView" mc:Ignorable="d" KeyDown="Window_KeyDown" 
WindowStartupLocation="CenterScreen" SizeToContent="WidthAndHeight" 
AllowsTransparency="True" WindowStyle="None" Foreground="#FF9DC2EF">

<Grid x:Name="LayoutRoot" Loaded="LayoutRoot_Loaded">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="120.012"/>
            <ColumnDefinition Width="209.988"/>
            <ColumnDefinition Width="81"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="72.899"/>
            <RowDefinition Height="30.101"/>
            <RowDefinition Height="43"/>
            <RowDefinition Height="43"/>
            <RowDefinition Height="80"/>
        </Grid.RowDefinitions>
        <Label HorizontalAlignment="Left" Content="用户名" Margin="0,8" 
Grid.Column="1" Grid.Row="2" Width="60" FontSize="16" Foreground="#FFE2E4EB"/>
        <Label HorizontalAlignment="Left" Margin="0,4,0,12" Content="密  码" 
Grid.Column="1" Grid.Row="3" FontSize="16" Width="64" Foreground="#FFEEF0F5"/>
        <TextBox x:Name="txtusername" TextWrapping="Wrap" Margin="0,8,8,10" 
Grid.Column="1" Grid.Row="2" BorderThickness="2" HorizontalAlignment="Right" 
Width="137.988" d:LayoutOverrides="GridBox">
            <TextBox.BorderBrush>
                <LinearGradientBrush EndPoint="0,20" StartPoint="0,0" 
MappingMode="Absolute">
                    <GradientStop Color="#FFABADB3" Offset="0.05"/>
                    <GradientStop Color="#FFE2E3EA" Offset="0.07"/>
                    <GradientStop Color="#FFBCDBF9" Offset="1"/>
                </LinearGradientBrush>
            </TextBox.BorderBrush>
        </TextBox>
        <PasswordBox x:Name="txtpassword" Margin="0,6,8,11" 
Grid.Column="1" Grid.Row="3" BorderThickness="2" HorizontalAlignment="Right" 
Width="137.988" d:LayoutOverrides="GridBox">
            <PasswordBox.BorderBrush>
                <LinearGradientBrush EndPoint="0,20" StartPoint="0,0" 
MappingMode="Absolute">
                    <GradientStop Color="#FFABADB3" Offset="0.05"/>
                    <GradientStop Color="#FFE2E3EA" Offset="0.07"/>
                    <GradientStop Color="#FFC1DBF5" Offset="1"/>
                </LinearGradientBrush>
            </PasswordBox.BorderBrush>
        </PasswordBox>
        <Button x:Name="LoginConfirmButton" Content="登  陆" Grid.Column="1" 
Grid.Row="4" Click="LoginConfirmButton_Click" FontSize="16" VerticalAlignment="Top" 
Height="24.687" Margin="64,8,91.988,0" Style="{DynamicResource ConfirmCancelButtonStyle}" />
        <Button x:Name="LoginCancelButton" Margin="144.988,8,0,0" Content="取  消" 
HorizontalAlignment="Left" Width="57" Grid.Column="1" Grid.Row="4" 
Click="LoginCancelButton_Click" FontSize="16" VerticalAlignment="Top" 
Height="24.687" Style="{DynamicResource ConfirmCancelButtonStyle}"/>
    </Grid>
</Window>

  注意一下这几个属性的设置:WindowStartupLocation="CenterScreen" AllowsTransparency="True" WindowStyle="None"。两个Button的样式代码我就不贴了,下面我们假如有下面这么一张图片(Login.png),如何成为背景呢?

  

  首先把这张图放在工程中

  

  接下来我们就要把这张图加载到窗体上,先贴代码吧,代码其实也就几句啦

public LoginView()
{
    this.InitializeComponent();
     txtusername.Focus();//聚焦在用户名输入框中
    // 在此点之下插入创建对象所需的代码。
    ImageBrush b = new ImageBrush();
     b.ImageSource = new BitmapImage(new Uri("pack://application:,,,/Login.png"));
      b.Stretch = Stretch.Fill;
      this.Background = b;
   }

  直接在构造函数中输入以上代码就Ok了,有一点我想说的是,我们是把这图片作为一种资源运用到上面去,说白了就是一种Background资源,

  应用的是像设置各种颜色似的资源,所以我们创建的是ImageBrush对象,还不是用Image对象。大概到这就完成了。瞎弄了下,不好的方面请见谅....

本文来自Chicano的博客,原文地址:http://www.cnblogs.com/chicano/archive/2011/06/21/2086151.html

WPF中为窗体设置背景图片的更多相关文章

  1. 为窗体设置背景图片-UI界面编辑器(SkinStudio)教程

    1.1.   为窗体设置背景图片 在窗体的Background属性中选择图片设置为窗体背景图片

  2. UIView 设置背景图片

    http://blog.csdn.net/qijianli/article/details/7777268 项目中,可能需要我们为某个视图设置背景图片,而API中UIView没有设置背景图片的方法,那 ...

  3. extjs中新建窗体时,给窗体添加背景图片不显示问题之一

    1.在extjs中新建窗体时,给窗体添加背景图片不显示,例如下面的代码. 不显示的原因:因为设置了  layout: 'fit', Ext.create('Ext.Window', { title: ...

  4. css网页中设置背景图片的方法详解

    在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等   用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {">说明:参数取值和颜色属性一样 ...

  5. 关于HTML表格中插入背景图片的问题_百度知道 3个回答 - 提问时间: 2009年03月23日 最佳答案: <tr style="background-image:url(1.jpg)"> (这事设置背景图片) <img src="images/bbs_student1.gif" />如果是这样的就是直接插入图片。你看看,...

    关于HTML表格中插入背景图片的问题_百度知道 3个回答 - 提问时间: 2009年03月23日 最佳答案: <tr style="background-image:url(1.jpg ...

  6. Android代码中设置背景图片

    //设置背景图片        String picfile= Environment.getExternalStorageDirectory() + "/pdp/pdp.png" ...

  7. C#中给RICHTEXTBOX加上背景图片

    在系统自带的RichTextBox中是无法给它设置背景图片,但是我们在某些场合可能需要给RichTextBox设置背景图片.那么怎么实现这一想法呢?经过研究发现通过其它巧妙的途径可以给RichText ...

  8. [Netbeans]为面板设置背景图片

    与AndroidStudio等类似IDE不同,在Netbeans开发桌面程序时,不可以直接通过src=@drawable 等方法为窗口设置背景图片.这里介绍一种简便的方法: 1:首先,拖动一个面板到f ...

  9. qt 设置背景图片

    博客出处:http://www.cppblog.com/qianqian/archive/2010/07/25/121238.htm 工作似乎走上正轨了,上周五的工作是做一个界面,用到QFrame和Q ...

随机推荐

  1. CAScrollLayer

    CAScrollLayer 对于一个未转换的图层,它的bounds和它的frame是一样的,frame属性是由bounds属性自动计算而出的,所以更改任意一个值都会更新其他值. 但是如果你只想显示一个 ...

  2. python 打印输出至文件中, 'wt'读写文件方式,会把原文件内容清空

    会把原文件内容清空,写最新的 文件必须以文本模式打开,如果文件是二进制模式的话,打印会出错

  3. 斯坦福大学机器学习,EM算法求解高斯混合模型

    斯坦福大学机器学习,EM算法求解高斯混合模型.一种高斯混合模型算法的改进方法---将聚类算法与传统高斯混合模型结合起来的建模方法, 并同时提出的运用距离加权的矢量量化方法获取初始值,并采用衡量相似度的 ...

  4. fastDFS errcode:9 path:Bad file descriptor errcode:22 path:Invalid argument

    fastDFS errcode:9 path:Bad file descriptor errcode:22 path:Invalid argument <error>status:4 er ...

  5. mysql修改Truncated incorrect DOUBLE value:

    UPDATE shop_category SET name = 'Secolul XVI - XVIII' AND name_eng = '16th to 18th centuries' WHERE ...

  6. 业余时间正在开发一个REACT小视频站点

    业余时间正在开发一个REACT小视频站点,数据接口来源于吐槽弹幕网(C站),供C站用户移动端的观看.因现存在移动网络屏蔽C站的关系,最好使用非移动网络进行观看.否则会比较卡,影响用户体验. 站点测试入 ...

  7. Python之os.path路径模块中的操作方法总结

    #os.path模块主要集成了针对路径文件夹的操作功能,这里我们就来看一下Python中的os.path路径模块中的操作方法总结,需要的朋友可以参考下 解析路径路径解析依赖与os中定义的一些变量: o ...

  8. dba和运维专家们说有丰富的大型分布式系统架构设计经验纯属扯淡

    如果,一开始就从事dba和运维的专家们说他们有丰富的大型分布式系统架构设计经验,那纯属扯淡.除非,他们从是从开发专家或者架构师转型而来,那么他们才有资格说自己有丰富的大型分布式系统架构设计经验. 运维 ...

  9. 20145329 《网络对抗技术》浏览器MS11_050安全漏洞攻击

    两台虚拟机: kali ip:192.168.96.130 windows xp sp3(包含IE7)ip:192.168.96.128 1.在kali终端中开启msfconsole. 2.进入漏洞模 ...

  10. 前向算法Python实现

    前言 这里的前向算法与神经网络里的前向传播算法没有任何联系...这里的前向算法是自然语言处理领域隐马尔可夫模型第一个基本问题的算法. 前向算法是什么? 这里用一个海藻的例子来描述前向算法是什么.网上有 ...