这样的窗口如何做(WPF项目)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这样的窗口如何做(WPF项目)相关的知识,希望对你有一定的参考价值。

C#,做WPF项目,这样的窗口如何做,就是一个窗口里付有多个窗口,付的窗口可以最大化最小化和关闭。开发工具是Visual Studio 2008
我想要的是关键部分的代码....

WPF 没有 MDI 窗口,但是你完全可以完美的模拟 MDI.

先看看效果的图.

至於代码就不详细了,因为字太多,所以只说下大致(也就是题目所说的 如何 做).

1. 在主窗口留一些位置用来 容纳 所有的子窗口. 当需要子窗口时,添加到这个区域中。

2. 在主窗口留一些位置来 容纳 已经最小化的子窗口,就像最后一幅图中下面的一样(传统的 MDI 也就是这样安排最小化了的子窗口的)。这个功能最好用 ListBox 来实现,设置 ListBox 的 ItemPanelTemplate 和 ItemsSource, 对子窗口的最小化和还原绑定。

3. 要实现子窗口的移动,大小, 菜单等,这只能在代码中实现。如何实现,可以探寻网上的代码例子.

上面三步完成后,基本上就成形了.

子窗口的内容,由於子窗口必定是 Content 或者 Items 类型的控件,所以,内容可以随意的和平常一样放置自己的东西 (通过其 Children/Child/Content 来设置)。

Good luck

参考技术A 1楼正解

WPF 窗口中展现网页

需求

在WPF应用程序中,需要使用到WEB项目的资源,第一时间想到的就是在WPF窗口中,展现WEB项目中的页面,这样子有两点好处:一是,实现简单,不需要在WPF应用程序中实现UI布局和数据绑定;二是,灵活适应变化,需求有变化时,只需修改WEB项目,WPF项目不需要变动。事物都是两面的,有优点就有缺点,这样做的缺点是:没有充分利用WPF绚丽的界面风格。

实现

在WPF中展现WEB页面有多种实现方式,我选择最简单的一种:使用WPF自带的Frame控件。 


1.主窗体:

//主窗口
<Button x:Name="button1" Content="打开网页" HorizontalAlignment="Left" Margin="217,180,0,0" VerticalAlignment="Top" Width="75" Click="button1_Click"/>
//后台代码
private
void button1_Click(object sender, RoutedEventArgs e) { WebWindow webWin = new WebWindow(); webWin.Show(); }

 

2.展示窗体:

//展现网页的窗口
<Grid>
    <!-- HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 使Frame自适应父容器的大小。 -->
    <Frame x:Name="frame" Content="Frame" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="10,10,0,0" />
</Grid>
public WebWindow()
{
    InitializeComponent();
    //Uri需要完整:即包含http或https
    frame.Source = new Uri("https://www.126.com/");
}

这样就能在WPF中,像桌面程序一样访问我们的WEB网站,真是不学WPF也能搞定桌面程序的捷径。

注意:该WEB程序不能打开新的页面,否则就曝光了WEB程序德尔本质。

 



以上是关于这样的窗口如何做(WPF项目)的主要内容,如果未能解决你的问题,请参考以下文章

WPF 窗口中展现网页

更改启动窗口

WPF MVVM从入门到精通2:实现一个登录窗口

在 WPF 中并通过使用 Prism,如何使用 MouseButtonEventArgs 作为窗口命令的参数?

WPF做一个界面,Label的字体如何随窗口的大小变化?

如何让 WPF 窗口停留在某个窗口的前面而不是最上面?