WPF中的ChildWindow----WPF的toolkit使用
来源:互联网 发布:东方网络股票牛叉诊断 编辑:程序博客网 时间:2024/06/05 03:10
http://www.cnblogs.com/shiyue/archive/2011/04/07/2007830.html
Silverlight中有ChildWindow这个东西,上午想起来WPF中是否也有这个东西呢?
其实如果真用代码也是可以实现ChildWindow,可是有没有更便捷的方法呢?我想到了WPF的toolkit,发现新的版本中还真是有这么个控件。首先声明,这里是个控件,这个Silverlight里面的ChildWindow的实现方式不一样,Silverlight中如何实现不再赘述。因为silverlight中的childwindow的固定思维使对这个东西的使用走了弯路,迷惑了好一会,所以分享给大家。
首先需要下载wpftoolkit和Extended WPF Toolkit Binaries。然后在项目中添加对WPFToolkit和WPFToolkit.Extended的引用:
在wpf窗口的<Window 节点中添加对命名空间的引用,加入一行
xmlns:extToolkit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit.Extended"
<extToolkit:ChildWindow x:Name="childWindow" Visibility="Hidden" Caption="My Child Window" Width="456" Closed="childWindow_Closed" IsModal="True" Height="253"> <Grid Margin="10" > <StackPanel Orientation="Horizontal" Margin="8,8,8,0"> <StackPanel.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFF4F8FF" Offset="0"/> <GradientStop Color="White" Offset="1"/> </LinearGradientBrush> </StackPanel.Background> <Button Width="65" Margin="100,76.5,2,0" x:Name="okbtn" Click="okbtn_Click" Content="获取值" Height="40" RenderTransformOrigin="-0.354,0.525" VerticalAlignment="Top" d:LayoutOverrides="Height"/> <Button Width="65" Margin="50,76.5,2,0" x:Name="cancalbtn" Click="cancalbtn_Click" Content="设置值" Height="40" VerticalAlignment="Top" d:LayoutOverrides="Height"/> </StackPanel> </Grid> </extToolkit:ChildWindow>
private void OpenChildWindow_Click(object sender, RoutedEventArgs e) { childWindow.Visibility = Visibility.Visible; childWindow.Show(); }
现将截图如下:
运行
打开childwindow:
获取label的值:
设置label的值:
子窗口关闭事件:
页面完整代码:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:extToolkit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit.Extended" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="blogtest.MainWindow" Title="MainWindow" Height="480" Width="640"> <Grid> <Button Content="打开子窗口" Height="40" HorizontalAlignment="Left" Margin="56,75,0,0" x:Name="OpenChildWindow" Click="OpenChildWindow_Click" VerticalAlignment="Top" Width="100" /> <Label Height="28" HorizontalAlignment="Left" Margin="56,12,0,0" x:Name="label1" VerticalAlignment="Top" Width="273" Content="初始值100" /> <extToolkit:ChildWindow x:Name="childWindow" Visibility="Hidden" Caption="My Child Window" Width="456" Closed="childWindow_Closed" IsModal="True" Height="253"> <Grid Margin="10" > <StackPanel Orientation="Horizontal" Margin="8,8,8,0"> <StackPanel.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFF4F8FF" Offset="0"/> <GradientStop Color="White" Offset="1"/> </LinearGradientBrush> </StackPanel.Background> <Button Width="65" Margin="100,76.5,2,0" x:Name="okbtn" Click="okbtn_Click" Content="获取值" Height="40" RenderTransformOrigin="-0.354,0.525" VerticalAlignment="Top" d:LayoutOverrides="Height"/> <Button Width="65" Margin="50,76.5,2,0" x:Name="cancalbtn" Click="cancalbtn_Click" Content="设置值" Height="40" VerticalAlignment="Top" d:LayoutOverrides="Height"/> </StackPanel> </Grid> </extToolkit:ChildWindow> </Grid></Window>
后台程序完整代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using Microsoft.Windows.Controls;namespace blogtest{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void OpenChildWindow_Click(object sender, RoutedEventArgs e) { childWindow.Visibility = Visibility.Visible; childWindow.Show(); } private void okbtn_Click(object sender, RoutedEventArgs e) { System.Windows.MessageBox.Show("获取的到的值为:" + label1.Content); } private void cancalbtn_Click(object sender, RoutedEventArgs e) { label1.Content = "值被设置为50"; } private void childWindow_Closed(object sender, EventArgs e) { System.Windows.MessageBox.Show("ChildWindow关闭了"); } }}
欢迎广大园友共同探讨,本人技术水平有限,如有不足之处,还请园友多多批评指正,谢谢。
- WPF中的ChildWindow----WPF的toolkit使用
- WPF中的ChildWindow----WPF的toolkit使用
- wpf 实现childwindow
- 在WPF中模拟SL的ChildWindow效果
- 使用Silverlight Toolkit实现弹窗---ChildWindow
- 使用Silverlight Toolkit实现弹窗---ChildWindow
- WPF Toolkit chart控件的应用范例
- WPF ToolKit 生成图表
- Extended WPF Toolkit
- Extended WPF toolkit
- WPF ToolKit Chart
- WPF Toolkit chart控件
- WPF中的柱形图的创建与使用
- WPF/Silverlight深度解决方案:(十三)完美自定义之ChildWindow
- WPF Combobox的使用
- WPF ContextMenu的使用
- WPF TextBlock的使用
- WPF Textbox的使用
- LeetCode: Edit Distance of Two Words
- 在二元树中找出和为某一值的所有路径(4)
- java中字符串对象的意义 string a = "xs" string a = new String(a) char[] a = {'x','s'}
- PopupWindow(第一篇CSDN博客,希望能坚持写下去,也希望大家多多支持)
- ASIHTTPRequest下访问https
- WPF中的ChildWindow----WPF的toolkit使用
- resin详解配置
- Vim(安装\使用\设置)
- Android API教程:人脸检测(上)
- SecureCRT 设置问题
- extjs学习小计
- ubuntu下配置nginx 加php需注意事项
- empty character constant
- 高效程序员的 7 个共同特征