草庐IT

c# - 如何在运行时将图像加载到 WPF?

在运行时将图像加载到WPF窗口似乎相当复杂。Imageimage;image=newUri("Bilder/sas.png",UriKind.Relative);????.Source=newBitmapImage(image);我正在尝试这段代码,但我需要一些帮助才能使其正常工作。我在代码下方看到了一些红线!我还想知道我是否需要在XAML代码中添加一些额外的代码,或者这样就够了:想知道,因为我看到了XAML标记内的图片的源代码示例。编辑:我现在正在使用这个:varuri=newUri("pack://application:,,,/sas.png");varbitmap=newBit

c# - WPF 在第二个窗口打开时禁用主窗口,直到它关闭

我有一个WPF应用程序,它有一个主窗口和一个可以从主窗口中的按钮打开的第二个窗口。我希望主窗口被禁用,而第二个窗口在VisualStudio中作为“关于”窗口打开。 最佳答案 试试这个ShowDialogmethod而不是Show将第二个窗口作为对话框打开。您有一个已经带有窗口的WPF项目。这个应用应该可以运行。右键单击项目并添加新窗口。您将其命名为Window1.xaml您现在会注意到Window1.xaml和Window1.xaml.cs添加到您的项目中。(窗口的类名是Window1,它位于.xaml.cs文件中,它派生自Win

c# - 如何在 wpf 中将 List<T> 转换为 ObservableCollection<T>?

我在wpf中,并且有一个通用列表:List。现在我希望将其转换为通用的可观察集合:ObservableCollection。我知道我可以遍历列表并将每个单独的项目添加到Observable集合中。但是,在我看来,必须有一种内置的方法来做到这一点。 最佳答案 如果您只想从List创建一个ObservableCollection,那么您需要做的就是ObservableCollectionobsCollection=newObservableCollection(myList); 关于c#-如

c# - 如何将焦点设置到 WPF 工具包数据网格的特定单元格

我正在使用WPF工具包提供的DataGrid控件来显示产品列表及其OpenStock、描述等。在此DataGrid中,我已将OpenStock列设置为可编辑,其余列不可编辑。当我的这个窗口加载时,我现在想要的是,我想将键盘焦点设置到OpenStock列的第一个单元格,如果可能的话,在编辑模式下。我搜索了2天,最后在这里发布。任何帮助或代码示例都会有所帮助。非常感谢.......... 最佳答案 您需要将当前单元格设置为您要编辑的单元格,然后调用BeginEdit在您的Loaded处理程序中:dataGrid1.CurrentCell

c# - WPF:标准且类似于 `SplitContainer` 的东西?

WPF中是否有类似于WindowsFormsSplitContainer的标准和类似的东西?我对网格有点迷茫,因为控件似乎不在单元格内部,而是在单元格之上:s。我做了一些谷歌搜索,但我不知道在搜索字段中写什么... 最佳答案 如何使用网格和GridSplitter制作水平SplitContainer的示例就像雪熊说的: 关于c#-WPF:标准且类似于`SplitContainer`的东西?,我们在StackOverflow上找到一个类似的问题: https:/

c# - 使用 WPF MVVM 预呈现/隐藏负载?

我有一个用WPF编码的控件,它可以具有三个子元素之一-两个SimpleChildElements和一个ComplexChildElement,比方说-并根据模型中的一些幕后逻辑在它们的显示之间交换我这样做。子元素是它们自己的ViewModel,我已经在上游声明了一些资源,所以它们有DataTemplates。如果有帮助,我可以详细说明,但问题的关键在于:当我滚动浏览主控件中的元素并且第一次弹出ComplexChildElement时,在它被装饰时会出现短暂的、几乎不可见的闪烁——它是一堆用DevExpress装饰的组合框。此设置意味着当我滚动离开带有ComplexChildElemen

c# - WPF:为什么我应该使用现有的 MVVM 框架而不是编写自己的框架?

我想知道MVVM框架能给我带来什么好处(例如mvvmlight、prism等)。如果你能给我从最重要到最不重要的要点。我只是想了解我是应该使用MVVM框架还是自己编写代码。 最佳答案 您可以在没有框架的情况下开始使用MVVM,并且可以随着时间的推移构建自己的基础代码。它可能会帮助您更好地学习模式。一旦你理解了它,你就会更好地体会到像CaliburnMicro这样的框架的力量。给你。当然,这些框架将所有基本模板代码排除在外,但它们还可以添加高级绑定(bind)、操作和组合功能。我刚刚收听了对CaliburnMicro作者的播客采访。也

c# - 如何通过 DevExpress 以编程方式关闭所有 WPF 菜单、弹出窗口等以解决与 WindowsFormsHost 相关的问题?

我希望它的行为就像您在应用程序的某处单击一样。(折叠所有菜单、下拉菜单等)实际上,我正在尝试解决在使用WindowsFormsHost的WPF应用程序中托管Windows窗体控件时遇到的与互操作性相关的焦点问题:如果DevExpress的WPF菜单/弹出窗口打开并且您单击Windows窗体控件,菜单/弹出窗口不会自动关闭。现在我在WindowsFormsHost中有很多Windows窗体控件,在WPF区域中也有很多DevExpress控件。为了轻松解决这个问题,我添加了一个消息过滤器来Hook应用程序中的所有点击,然后我查看点击的控件是否是Windows窗体控件。然后我需要做一些事情来

c# - 枚举上的 DataTrigger 作为 WPF 样式上的触发器值

因此,简而言之,这就是我要尝试做的事情,我将从代码开始,它很可能是有意义的。枚举定义:namespaceSEL.MfgTestDev.ESS.ViewModel{publicenumUnitStatusModel{Indeterminate,Pass,Fail,Warning,}}我是不是缺少了一block来完成这项工作?我发现了一些关于依赖于对象数据源的枚举的WPF文章,但我不太喜欢这种解决方案,难道我不能在这里做一些更简单的事情吗? 最佳答案 我找到了解决方案,但它很愚蠢。样式被设计为控件的一种可视化模板,但它们被设计为可视化实

c# - 当弹出窗口中的数据网格捕获鼠标时,wpf 弹出窗口不会自动关闭

我有一个带有StaysOpen=False的弹出窗口,所以我想通过单击弹出窗口之外的任意位置来关闭它。在弹出窗口中,我有一个DataGrid。如果我打开弹出窗口然后单击其他地方,弹出窗口将关闭。但如果在弹出窗口外单击之前我将单击DataGrid中的列标题,则不会发生这种情况。测试XAML:Open我认为这是因为列标题在单击时捕获鼠标并且弹出窗口不再接收鼠标事件。我试图在LostMouseCapture事件上添加一个处理程序,以便通过弹出窗口捕获鼠标,但它似乎并不那么容易工作。有什么想法吗? 最佳答案 也许它会有所帮助。附加行为:pu