Tag: wpf

CheckComboBox:如何在单击选择后阻止combobox关闭?

我有一个combobox,它上面有一堆复选框。 我希望用户能够在combobox关闭之前多次单击(或由用户自己关闭)。 现在的问题是,每次单击复选框时,combobox都会关闭,迫使想要选择多个选项的用户多次重新打开它。 我在同一主题上找到了其他问题,但这些问题适用于Silverlight,Qt等比较标签。 我已经尝试过设置StayOpenOnEdit,但这并不能解决问题。 据我所知,没有财产可以解决我的问题。 这让人怀疑我可能会把错误的组件放在一起。 单击复选框后,如何防止combobox自动关闭? 是否有更适合此类任务的组件,如果有,它的名称是什么? 请注意,即使#2的答案是“是”,我仍然对纯粹的学术原因感到好奇。 正如有人在post中建议的那样,我玩过切换按钮和列表框。 然而,这导致了一个总是完全显示的所有复选框的列表,其后面有一些灰色的东西(我假设是切换器)。 也许我在标记中做了一些不那么聪明的事情。 关键是要实现这样的东西,但它需要是一个标准的WPF控件(所有选定项目的连接线很好,但不是必须的)。 此外,我已经阅读了关于绑定和处理尚未完全开发的抱怨,我感到有点怀疑。

IValueConverter的最佳做法是什么?

IValueConverter的最佳做法是什么? 可以将Exception放在Convert方法中,还是应该返回“something”? 这是一个例子: [ValueConversion(typeof(float), typeof(String))] public class PercentConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null || string.IsNullOrEmpty(value.ToString())) return string.Empty; if (value is float) //Edited to support CultureInfo.CurrentCulture, return string.Format(culture, “{0:n}{1}”, ((float)value) * 100, “%”); //** Is it ok to put Exception here or should […]

在WPF中为DataGridRow创建ControlTemplate

我想要完成的是自定义DataGrid控件,以便每行都有圆角,没有网格线(只是我正在使用的设计)。 我一直在尝试做的是创建一个ControlTemplate来修改DataGridRow控件,使它们具有预期的外观。 到目前为止,这是我正在使用的: 这个版本显然是基本的(只是股票模板周围的边框),但是当我运行应用程序时,我看不出任何差异。 那么,问题是如何自定义DataGridRow的控件模板? 或者,如果这是不可行的,是否有更好的方法来实现我的目标:?

Windows窗体/ WPF太大了,我怎么能把它分开?

我即将创建WPF应用程序。 到目前为止,在uni中我们完成GUI的唯一方法是使用一个主窗口和一个代码隐藏文件来处理其按钮点击等。 我的问题是,随着应用程序的增长,GUI会增长,文件后面的代码大小可能会失控! 我已经为我的系统确定了大约15个主要用例(例如:输入详细信息,查看详细信息等…)。 我正在创建一个主窗口(大小:480×320),由15个单独的屏幕组成(每个用例一个)。 这可以通过一个居中和拉伸的TabControl来实现,它有15个TabItem。 或者更可能的是它可能只是一堆分层容器,一个在另一个之上(一次只能看到一个)。 关键是,有15个单独的屏幕,我的代码隐藏文件将变得巨大(更不用说xaml文件!):在状态之间玩杂耍 – 使14折叠/隐藏并使一个可见,处理15个不同屏幕的控件。 有没有办法拥有15个单独的表单,每个表单都有自己的代码隐藏文件,而不是一个表单上的15个TabItems,然后根据需要创建一个主引擎并将其废弃? 当然,它应该看起来好像是一种forms,而不是15种弹出窗口。 我该如何处理? 您将如何处理长达数千行的xaml和代码隐藏文件的问题?

从其他Assembly实例化ResourceDictionary xaml

我在包含颜色和画笔的WPF类库中定义了一个Reource Dictionary,名为BrushResources.xaml。 我想在另一个程序集的代码中使用一些Brushes,它引用了这个库项目。 如何获得它的ResourceDictionary实例?

如何在两个ViewModel之间建立通信/传递数据

我知道这个问题已经被多次询问了,我已经阅读了很多关于它的答案。 然而,它们都没有满足我的要求,因此我需要一些建议。 我正在开发的应用程序看起来像这样: http : //screenshooter.net/100101493/smrkpog 它是基于MVVM Light Toolkit的WPF MVVM应用程序。 带网格的区域是ListBox + Canvas 。 这些项目(让我们称之为“Neumes”)再次由ListBox + Canvas组成,并由用户动态创建。 每个Neume都由’Elements’组成,它们呈现为红色形状。 当用户双击Neume时,将打开一个新窗口。 它应该允许编辑(翻译,resize,旋转)所选Neume的元素。 我想要做的是将存储在MainViewModel中的SelectedNeume(带有一个Elements列表)传递给我新创建的窗口的ViewModel。 我对如何实现这个有一些想法 : 完全跳过新的ViewModel并将MainViewModel设置为新窗口的DataContext , 在新的ViewModel中创建一个’MainViewModel’字段,并在打开一个新窗口时将其传递给那里 使用MVVM Light Toolkit提供的Messaging / Mediator模式。 我正在寻找既简单又整洁的解决方案。 我很乐意使用选项3.但就WPF而言,我是一个相对新手,并且不知道如何真正开始。 此外,我担心当主ListBox上的双击事件被触发时,新窗口打开的事实可能会出现问题,因为我找不到将命令绑定到ListBoxItem的方法。它的Style还是DataTemplate(事件触发器/ EventToCommand解决方案对我不起作用)。 这是事件: private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) { var item = ((FrameworkElement)e.OriginalSource).DataContext as Neume; if (item != null) { var […]

在WPF中。 如何通过鼠标拖动滚动ScrollViewer中的对象,就像iPhone一样?

通过鼠标滚轮或滚动条种子拖动滚动效果很好。 但滚动视图上的鼠标拖动内容滚动没有完成。 我该如何实施此操作? Test Test Test Test Test

如何在PDFSharp中使用私有字体

我试图使用私有文本添加文本到PDF文档,即没有安装在系统上,TrueType字体和麻烦。 我正在使用NuGet的PDFSharp + MigraDoc WPF版本1.32.2608.0。 我在论坛和StackOverFlow上找到了很多项目。 最新的是这篇stackoverflow文章,它引用了PdfSharp站点上的这个例子 。 但是,此示例包含以下代码: this.fontFamilies.Add(key, fontFamily); 在第22行,但我在汇编中找不到任何对fontFamilies的引用。 因此,我遵循了看起来很好的例子 ,但它对我不起作用。 当我使用这种方法时,我可以成功添加字体但是当我来使用命令时: var font = new XFont(fontStyle.Name, new XUnit(fontStyle.SizePt, XGraphicsUnit.Point), XFontStyle.Regular, _fontOptions); 其中fontStyle.Name是前面没有#的字体名称。 此时,PdfSharp在PdfSharp.Drawing命名空间内的private void Initialise()方法内部中断。 此时检查Initialise方法中的变量它具有: 找到了字体系列,即this.family != null 找到了字体,即this.typeface != null 我假设它在线上断开if (!typeface2.TryGetGlyphTypeface(out typeface))但我不能确定。 注意:我已经尝试了.ttf和.otf字体无济于事。 有人能指出我正确的方向吗? 更新 最后我换成了PDFSharp WPF 1.50 beta,因为它的字体处理要好得多。 在我的第二个问题上看到这篇SOpost ,以及解决我问题的新字体解析器的信息。 现在一切都很好。

我应该如何“暂停”程序以向用户显示提示?

当用户第一次运行我的程序时,我希望他们通过一系列提示。 每次他们点击某个“检查点”时,程序会暂停它的操作,背景会有点模糊(除了提示引用的窗口区域),并且提示将出现在顶部,解释如何使用它/做什么等 我不知道该怎么称呼它,在我脑海里它被称为“教程提示”,但谷歌搜索任何与此相关的东西显示了一堆WPF / C#的通用教程。 最好的方法是什么? 我真的只是看着使用弹出窗口和控制它们何时可见? 是否有更好/更优雅的解决方案或任何资源来帮助解决这个问题?

WPF中不规则的PNG按钮的单击事件

在WPF中我需要一个不规则形状的按钮。 我是这样用XAML做的: 我的ball.png图片是一张PNG图片,周围有一个透明区域的球。 该按钮显示正确,但即使我克隆图像的透明部分,也会执行Click事件处理程序。 有没有办法使用透明PNG创建不规则按钮? 谢谢,迈克尔