预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK"http://kb.cnblogs.com/page/81016/"利用WPF建立自适应窗口大小布局的WinForm窗口 编写WinForm程序时,都会碰到一个问题。就是WinForm窗口在不同分辨率下的大小问题。举例说明,你编写的WinForm窗口在1024×768下是合适、匀称的。不过,如果用户的计算机的分辨率为1400×900时,你的WinForm窗口就显得偏小,其中的字体和控件都显得偏小。如果用户的分辨率为640×480,那你的窗口就远远超过它的屏幕的大小。 如何解决这个问题?一般的WinForm程序都会这样操作:程序启动——》获取屏幕分辨率——》调整窗体的大小——》调整各个控件大小及位置——》调整各个控件的字体。这样操作比较繁琐,并且要考虑到各种分辨率的情况。这样一来,如果WinForm窗口上有若干控件,调整是一件很痛苦的事。 有没有这样的手段。我只要调整WinForm窗口的大小,其中的各个控件大小(包括字体)自动的等比例缩放? 还记得一些DirectX的游戏程序吗?当设定为固定的分辨率时(比如800×600),在全屏的时候,他都会自动缩放。WinForm有这样的手段吗? 答案是肯定的。在WPF中就能很简单的实现该功能。 利用WPF中的ViewBox容器空间。ViewBox是一个容器空间,它会自动缩放容器中的子空间以填满自身,同时它只能有一个子控件。不过,我们可以把Canvas控件作为ViewBox控件的子控件。然后在Canvas控件中布局其他的控件。 先看看下面的窗口的Xaml文件 HYPERLINK"http://kb.cnblogs.com/page/81016/"? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33<Windowx:Class="Window1" xmlns="HYPERLINK"http://schemas.microsoft.com/winfx/2006/xaml/presentation"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="HYPERLINK"http://schemas.microsoft.com/winfx/2006/xaml"http://schemas.microsoft.com/winfx/2006/xaml" Title="WPFTest" mc:Ignorable="d" xmlns:d="HYPERLINK"http://schemas.microsoft.com/expression/blend/2008"http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="HYPERLINK"http://schemas.openxmlformats.org/markup-compatibility/2006"http://schemas.openxmlformats.org/markup-compatibility/2006" SizeToContent="Manual"Width="400"Height="300"> <DockPanelName="DockPanel1"LastChildFill="True"> <MenuHeight="23"Name="Menu1"DockPanel.Dock="Top"> <MenuItemHeader="Menu1"> <MenuItemHeader="H1"/> <MenuItemHeader="H2"/> </MenuItem> <MenuItemHeader="Menu2"> <MenuItemHeader="L1"/> <MenuItemHeader="L2"/> <Separator/> <MenuItemHeader="L4"/> </MenuItem> </Menu> <StatusBarHeight="23"Name="StatusBar1"DockPanel.Dock="Bottom"> <StatusBarItemContent="S1"Name="S1"/> <StatusBarItemContent="S2"Name="S2"/> <StatusBarItemContent="S3"Name="S3"/> </StatusBar> <ViewboxName="Viewbox1"Stretch="Fill"> <CanvasHeight="200"Name="Can