wpf使用C#控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf使用C#控件相关的知识,希望对你有一定的参考价值。

我做了一个wpf程序,在同一工程里面建立了一个C#的自定义控件,但是调用它的时候,却报错: : 无法从“物流存储及管理系统.uicon.BasicInfo.frmGoodsInfo”转换为“System.Windows.UIElement” F:\物流存储及管理系统\物流存储及管理系统\MainWindow.xaml.cs 89 请高手指教!!!急!!! frmGoodsInfo是c#中form类型的空间,不是UIElement,但是我却必须要使用他,该怎么办?

参考技术A 在项目引用中添加windowsformsintegration.dll
然后在xaml用
xmlns:int="clr-namespace:system.windows.forms.integration;assembly=windowsformsintegration"
<int:windowsformshost>
放你的winform控件
</int:windowsformshost>
参考技术B 在项目引用中添加WindowsFormsIntegration.dll
然后在xaml用
xmlns:int="clr-
namespace
:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
放你的
Winform控件

WPF (C#) 用户控件删除元素

【中文标题】WPF (C#) 用户控件删除元素【英文标题】:WPF (C#) Usercontrol remove elements 【发布时间】:2021-11-26 22:03:18 【问题描述】:

我正在使用 WPF(C#) 中的 Usercontrol 制作模板。

但是,在应用此用户控件时,是否可以减去特定部分?例如,移除一个按钮?

【问题讨论】:

隐藏多余的部分 我怎样才能让它隐藏,我怎样才能让它发生? 【参考方案1】:

要从 UserControl 中减去特定部分,可以使用可见性(折叠、隐藏)选项。 确保在 UserControl 中添加依赖属性以显示和隐藏特定部分。

【讨论】:

我不认为向用户控件添加依赖属性来控制可见性是一个好建议。 WPF 是围绕 MVVM 构建的,MVVM 解决方案是通过绑定到视图模型来控制可见性。 @NigelBess 我不同意你的观点,用户控件必须公开必要的功能才能与之交互,.. 必要的功能已经通过绑定暴露了。无需通过为您想要控制的所有内容添加依赖属性来使事情复杂化。此外,您仍然需要访问依赖属性,无论哪种方式都应该通过绑定来完成【参考方案2】:

听起来您只是想隐藏现有按钮,您应该通过将Visibility 设置为Visibility.CollapsedVisibility.Hidden 来做到这一点。这应该通过绑定到用户控件的 ViewModel 来完成。

如果您需要纯 XAML 解决方案:不,这样是不可能的。但是,反过来也是可能的:you can add content to a user control,它有效地提供了相同的功能。

您可以做的是制作一个不包含按钮的基本用户控件,而是有一个内容呈现器。第二个用户控件可以包装基本用户控件并将一个按钮定义为其内容。然后,当您不想将用户控件与按钮一起使用时,您可以简单地创建一个基本用户控件的实例。

【讨论】:

以上是关于wpf使用C#控件的主要内容,如果未能解决你的问题,请参考以下文章

WPF C#如何使用鼠标使控件可拖动

C# WPF 使用委托修改UI控件

C# wpf 如何实现自定义控件,布局时,大小发生变化,内部绘制的曲线跟随变化?

打开文件对话框并使用 WPF 控件和 C# 选择文件

C# wpf 想让控件随着窗口大小变化而变化

wpf显示视频,image控件闪屏,使用winform控件实现