资源简介
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个文件信息
相关资源
- C#自定义控件
- C# 使用ListView控件实现图片浏览器(源
- C# pictureBox控件开打和另存为图像(附
- 用WPF开发的多人聊天室 语言C#
- 一个很强大的C#第三方控件!!(附带
- C#实现简单的Web打印控件
- C#使用剪切板粘贴数据
- winform分页控件
- datagridview控件美化
- WPF控件库HandyControl
- WPF
- c# wpf实现的上位机
- C#实现Led指示灯(自定义用户控件)
- 上位机通讯测试控件大全
- C#dotnetbar控件全DLL
- VisionPro控件在WPF 应用
- winform下拉多选自定义控件(带全选)
- C#曲线图控件
- winform控件库
- WPF使用MVVM
- winform实现饼状图、柱状图、折线图(
- C#中WPF联合Halcon的一个学习(解决内存
- WPF CEFSHARP 支持 MP4
- WPF贝塞尔曲线
- WPF 简单控件集
- C# OutlookBar导航菜单控件
- WPF鼠标拖动控件源码
- C#控件美化(TabControlEx)
- wpf开发教程
- AduMusic迷你音乐盒WPF源码
评论
共有 条评论