首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在透明的UserControl中托管WPF Windows.Form

在透明的UserControl中托管WPF Windows.Form
EN

Stack Overflow用户
提问于 2013-11-29 12:52:17
回答 3查看 1.4K关注 0票数 2

我需要将我的WPF USerControl插入到Windows.Form中。这是我的控制:

代码语言:javascript
复制
<UserControl x:Class="WpfControlLibrary1.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Background="Transparent">

    <InkCanvas x:Name="Ink" Background="Transparent" />

</UserControl>

要承载此控件,我使用ElementHost对象作为窗体的唯一控件。我需要这样做:当我将表单的不透明度设置为0时,为了使其不可见,我需要继续将我的ChildrenStrokesInkCanvas的不透明度设置为1(这样我就可以看到它们)。

我尝试使用TransparencyKey属性,但它似乎不适用于ElementHost。如何解决这个问题,以及如何在表单和UserControl之间设置不同的不透明度?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-29 13:04:58

AFAIK是不可能的,因为WPF使用的是亚像素α渲染,例如winform是不可用的。

希望能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2015-03-04 07:31:06

如果您想托管一个在Win窗体上透明行为的WPF控件,请执行以下步骤

  • 创建WPF用户控件并设置后台=“透明”。
  • 创建没有控件的Win用户控件,并在其后端编写以下代码: 公共WinControl() { InitializeComponent();}受保护的重写CreateParams CreateParams { get { CreateParams cp = base.CreateParams;cp.ExStyle |= 0x000020;返回cp;}
  • 现在,将WPF用户控件放在Win用户控件上,并将wpfusercontrol停靠到其父控件(win用户控件)。
  • 现在将win用户控件拖到win窗体上,并将win用户控件拖到其父(窗体)中。

你就完蛋了。

票数 1
EN

Stack Overflow用户

发布于 2013-12-08 09:32:15

您可以使用Microsoft.Ink.dll创建您自己的基于WinForms的UserControl,如果您想要这样做的话,它可以支持手写识别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20286299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档