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

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

xaml代码如下:
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),如何成为背景呢?

首先把这张图放在工程中

接下来我们就要把这张图加载到窗体上,先贴代码吧,代码其实也就几句啦
{
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中为窗体设置背景图片的更多相关文章
- 为窗体设置背景图片-UI界面编辑器(SkinStudio)教程
1.1. 为窗体设置背景图片 在窗体的Background属性中选择图片设置为窗体背景图片
- UIView 设置背景图片
http://blog.csdn.net/qijianli/article/details/7777268 项目中,可能需要我们为某个视图设置背景图片,而API中UIView没有设置背景图片的方法,那 ...
- extjs中新建窗体时,给窗体添加背景图片不显示问题之一
1.在extjs中新建窗体时,给窗体添加背景图片不显示,例如下面的代码. 不显示的原因:因为设置了 layout: 'fit', Ext.create('Ext.Window', { title: ...
- css网页中设置背景图片的方法详解
在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等 用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {">说明:参数取值和颜色属性一样 ...
- 关于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 ...
- Android代码中设置背景图片
//设置背景图片 String picfile= Environment.getExternalStorageDirectory() + "/pdp/pdp.png" ...
- C#中给RICHTEXTBOX加上背景图片
在系统自带的RichTextBox中是无法给它设置背景图片,但是我们在某些场合可能需要给RichTextBox设置背景图片.那么怎么实现这一想法呢?经过研究发现通过其它巧妙的途径可以给RichText ...
- [Netbeans]为面板设置背景图片
与AndroidStudio等类似IDE不同,在Netbeans开发桌面程序时,不可以直接通过src=@drawable 等方法为窗口设置背景图片.这里介绍一种简便的方法: 1:首先,拖动一个面板到f ...
- qt 设置背景图片
博客出处:http://www.cppblog.com/qianqian/archive/2010/07/25/121238.htm 工作似乎走上正轨了,上周五的工作是做一个界面,用到QFrame和Q ...
随机推荐
- php PDO遇到的坑
<?php $dbConn = new PDO( "mysql:host=localhost;dbname=adtuu",'root','root', array( // 强 ...
- zookeeper 安装以及集群搭建
安装环境: jdk1.7 zookeeper-3.4.10.tar.gz VM虚拟机redhat6.5-x64:192.168.1.200 192.168.1.201 192.168.1.202 ...
- linux常用命令:top 命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是 一个动态显示过程,即可以通过用户按键来不断刷 ...
- MySQL笔记(二)数据库对象的创建和管理
学校用 sqlserver ,记录数据移植到 mysql 过程中的一些问题(对应数据类型,主键外键等). 索引: 查看数据的物理路径 查看表相关的信息(SHOW CREATE TABLE.DESC) ...
- Jsoup简介
Jsoup简介 一.概述 Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来 ...
- 20145305 《网络对抗》Web基础
实践过程及结果截图 Apache 简单的网页编写 javascript相关 PHP测试 MySQL基础 php+mysql 登录成功信息: 登录失败信息: SQL注入 XSS攻击 基础问题回答 (1) ...
- USB/232/485/TTL/CMOS(串口通信)⭐⭐⭐
1.USB:电脑的USB口信号时USB信号,为差分信号,电压范围:+400mV~-400mV间变化:直流电压5V 驱动电流500MA 2.232电平: 逻辑1(MARK)=-3V--15V 逻辑0(S ...
- PyQt5 - 01 使用qt creator创建第一个pyqt5界面程序
1. 安装Qt Creator qt creator下载点我 2. 利用Qt Creator创建界面 点击文件 -> 新建文件或项目 选择Qt -> Qt设计师界面类 选择一个模版,创建一 ...
- Ansible 入门指南 - 学习总结
概述 这周在工作中需要去修改 nginx 的配置,发现了同事在使用 ansible 管理者系统几乎所有的配置,从数据库的安装.nginx 的安装及配置.于是这周研究起了 ansible 的基础用法.回 ...
- BZOJ2563: 阿狸和桃子的游戏 贪心
Description 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游戏规则是这样的: 1. 阿狸和桃子轮流将图中的顶点染色,阿狸会将顶 ...