资源简介
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
具体见博文:http://blog.csdn.net/zzzwwwppp11199988899/article/details/78131292
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms.Integration;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace AppContainers
{
///
/// 按照步骤 1a 或 1b 操作,然后执行步骤 2 以在 XAML 文件中使用此自定义控件。
///
/// 步骤 1a) 在当前项目中存在的 XAML 文件中使用该自定义控件。
/// 将此 xmlNamespace 特性添加到要使用该特性的标记文件的根
/// 元素中:
///
/// xmlns:MyNamespace=“clr-namespace:AppContainer“
///
///
/// 步骤 1b) 在其他项目中存在的 XAML 文件中使用该自定义控件。
/// 将此 xmlNamespace 特性添加到要使用该特性的标记文件的根
/// 元素中:
///
/// xmlns:MyNamespace=“clr-namespace:AppContainer;assembly=AppContainer“
///
/// 您还需要添加一个从 XAML 文件所在的项目到此项目的项目引用,
/// 并重新生成以避免编译错误:
///
/// 在解决方案资源管理器中右击目标项目,然后依次单击
/// “添加引用”->“项目”->[选择此项目]
///
///
/// 步骤 2)
/// 继续操作并在 XAML 文件中使用控件。
///
///
///
///
[TemplatePart(Name = “PART_Host“ Type = typeof(WindowsFormsHost))]
public class AppContainer : Control
{
#region Fields
private WindowsFormsHost _winFormHost = null;
private System.Windows.Forms.Panel _hostPanel = null;
private ManualResetEvent _eventDone = new ManualResetEvent(false);
private Process _process = null;
private IntPtr _embededWindowHandle = (IntPtr)0;
#endregion
#region Properties
#endregion
#region Dependency Properties
#endregion
#region Wrappers
#endregion
#region Constructors
static AppContainer()
{
DefaultstyleKeyProperty.Overridemetadata(typeof(AppContainer) new frameworkPropertymetadata(typeof(AppContainer)));
}
#endregion
#region Override Methods
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
_winFormHost = GetTemplateChild(“PART_Host“) as WindowsFormsHost;
if(_winFormHost != null)
{
_hostPanel = new System.Windows.Forms.Panel();
_winFormHost.Child = _hostPanel;
}
}
protected override void OnRender(DrawingContext drawingContext)
{
if (_process != null)
{
Win32Api.MoveWindow(_process.MainWindowHandle 0 0 (int)ActualWidth (int)ActualHeight true);
}
base.OnRender(drawingContext);
}
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-27 10:16 WpfAppContainerTest\
目录 0 2017-09-27 10:14 WpfAppContainerTest\.vs\
目录 0 2017-09-27 10:14 WpfAppContainerTest\.vs\WpfAppContainerTest\
目录 0 2017-09-27 10:14 WpfAppContainerTest\.vs\WpfAppContainerTest\v15\
文件 82432 2017-09-29 11:19 WpfAppContainerTest\.vs\WpfAppContainerTest\v15\.suo
目录 0 2017-09-29 11:18 WpfAppContainerTest\.vs\WpfAppContainerTest\v15\sqlite3\
文件 897024 2017-09-29 11:18 WpfAppContainerTest\.vs\WpfAppContainerTest\v15\sqlite3\storage.ide
目录 0 2017-09-29 11:18 WpfAppContainerTest\AppContainer\
文件 7332 2017-09-29 11:12 WpfAppContainerTest\AppContainer\AppContainer.cs
文件 3860 2017-09-27 14:16 WpfAppContainerTest\AppContainer\AppContainers.csproj
目录 0 2017-09-27 10:16 WpfAppContainerTest\AppContainer\Properties\
文件 2307 2017-09-27 10:16 WpfAppContainerTest\AppContainer\Properties\AssemblyInfo.cs
文件 2867 2017-09-27 11:56 WpfAppContainerTest\AppContainer\Properties\Resources.Designer.cs
文件 5612 2017-08-31 15:15 WpfAppContainerTest\AppContainer\Properties\Resources.resx
文件 1113 2017-09-27 11:56 WpfAppContainerTest\AppContainer\Properties\Settings.Designer.cs
文件 201 2017-08-31 15:15 WpfAppContainerTest\AppContainer\Properties\Settings.settings
目录 0 2017-09-27 14:32 WpfAppContainerTest\AppContainer\Themes\
文件 1012 2017-09-27 12:29 WpfAppContainerTest\AppContainer\Themes\AppContainer.xaml
文件 419 2017-09-27 14:32 WpfAppContainerTest\AppContainer\Themes\Generic.xaml
文件 5504 2017-09-27 14:18 WpfAppContainerTest\AppContainer\Win32Api.cs
目录 0 2017-09-27 11:56 WpfAppContainerTest\AppContainer\bin\
目录 0 2017-09-27 12:03 WpfAppContainerTest\AppContainer\bin\Debug\
文件 14848 2017-09-29 11:18 WpfAppContainerTest\AppContainer\bin\Debug\AppContainers.dll
文件 26112 2017-09-29 11:18 WpfAppContainerTest\AppContainer\bin\Debug\AppContainers.pdb
目录 0 2017-09-29 11:19 WpfAppContainerTest\AppContainer\bin\Release\
目录 0 2017-09-27 10:16 WpfAppContainerTest\AppContainer\obj\
目录 0 2017-09-29 11:18 WpfAppContainerTest\AppContainer\obj\Debug\
文件 42 2017-09-27 12:11 WpfAppContainerTest\AppContainer\obj\Debug\AppContainer.csproj.CoreCompileInputs.cache
文件 1363 2017-09-27 12:03 WpfAppContainerTest\AppContainer\obj\Debug\AppContainer.csproj.FileListAbsolute.txt
文件 954 2017-09-27 12:03 WpfAppContainerTest\AppContainer\obj\Debug\AppContainer.csproj.GenerateResource.Cache
文件 2503 2017-09-27 12:03 WpfAppContainerTest\AppContainer\obj\Debug\AppContainer.csprojResolveAssemblyReference.cache
............此处省略83个文件信息
相关资源
- PDF文件 阅读控件 (VeryPDF PDFView OCX)
- WPF翻页照片特效浏览源代码
- [源代码] 《领域驱动设计 (C# 2008 实
- C#自定义控件案例--美化GroupBox.rar
- C# 使用GDI+绘制漂亮的ToolTip控件
- C# WPF扫描仪调用Twain
- Wpf生成word文档
- C#动画控件超炫
- WeifenLuo.WinFormsUI.Docking3.1.0
- WPF 基础视频教程共50集---27.资源字典
- WPF动画 窗体跳转过渡动画 包含大量窗
- 24652561RevitWPFAddin.zip
- WPF圆润的TabItem和TabControl
- C#自定义可限制输入、可验证信息的
- c#影院系统大作业,班评第一名
- C#实现将WPF字体呈现到OpenGL 支持汉字
- wpf 搜集整理demo源码(都是c#写的,惊
- WPF滚动相册+图文介绍
- 原创WPF卫生相关文档编辑器
- HelixToolkitWPF中文手册.rar
- 深入浅出WPF_含源码
- C#基于wpf实现的天气日历生活助手
- C#中WebBrowser控件的简单调用
- WPF实现多级菜单(菜单多按钮)
- WPF调用log4.net
- IP地址控件C#版
- C#版本气泡自定义控件,引用即可使用
- 一个C#的Chart控件
- C#chart控件画3D柱状、折线图
- WPF TreeListView
评论
共有 条评论