Tag: wpf

嵌套的RibbonApplicationMenuItem中出错

我想构建一个RibbonApplicationMenu 。 其中应该是嵌套的RibbonApplicationMenuItem或RibbonApplicationSplitMenuItem ,例如喜欢这样: 首先没有显示错误,程序可以成功构建。 当我继续工作时,标记整个部分并给出错误:“索引’0’超出PathParameters-List的有效范围,长度为’0’”。 这个错误的原因是什么?

在WPF中将自定义纸张尺寸打印到冲击打印机

我要打印到装有8.5 x 8.5英寸纸张的冲击式打印机上。 打印时,打印机弹出11英寸而不是8.5英寸。 PageMediaSize pageSize = new PageMediaSize(PageMediaSizeName.Unknown, element.Width, element.Height); PrintDialog dialog = new PrintDialog(); dialog.PrintTicket.PageMediaSize = pageSize; Console.WriteLine(dialog.PrintableAreaHeight); // 816, good! dialog.PrintQueue = myQueue; // selected from a combobox Console.WriteLine(dialog.PrintableAreaHeight); // 1056 🙁 dialog.PrintVisual(element, description); 使用“ 如何在.NET中将Twips转换为像素? ”我已经确定8.5英寸是816像素,这是我的element.Width和element.Height的大小。 我正在设置一个新的PageMediaSize ,但这似乎没有效果,当我在对话框上设置队列时, dialog.PrintableAreaHeight仍然在1056结束。 如果我执行dialog.ShowDialog() ,手动选择我的打印机,并在我的打印机的高级设置中手动查找和更改纸张大小,然后dialog.PrintableAreaHeight正确反映更改。 此页面http://go4answers.webhost4life.com/Example/set-printdialogs-default-page-size-168976.aspx建议我只能设置我的打印机支持的PageMediaSize 。 在我的PrintQueue上使用GetPrintCapabilities函数,我看到一个包含10个左右页面大小的列表,其中没有一个是8.5 x 8.5。 这与我在Windows中进入打印机高级设置时看到的列表相同。

处理过的RoutedEvent继续冒泡树

我正在开发一个基于TreeView的控件,我的双击事件继续冒泡我的TreeViewItem节点。 目标是在双击时让TreeViewItem展开或折叠。 我有一个样式,将MouseDoubleClick事件的事件处理程序应用于每个TreeViewItem 。 这是处理事件的代码 private void TreeViewItemDoubleClicked( object sender, RoutedEventArgs e ) { // Get the specific tree view item that was double clicked TreeViewItem treeViewItem = sender as TreeViewItem; // not null? if( null != treeViewItem ) { // Switch expanded state if( true == treeViewItem.IsExpanded ) { treeViewItem.IsExpanded = false; } else […]

绑定在VM WPF中按下命令的任何键

我正在尝试将任何键盘键绑定到ViewModel的命令。 我知道我可以绑定一个特定的密钥,使用: 我可以将所有按键绑定到ChangeIdCommand而无需手动键入它们吗?

WinForms中的HWnd消息挂钩?

什么是WinForms等效于以下WPF代码行? HwndSource.FromHwnd(_windowHandle).AddHook(HwndSourceHookHandler);

在BackgroundWorker和主线程之间共享对象

我的主线程(WPF应用程序)中有一个ListBox对象。 为什么我无法在BackgroundWorker线程中访问它。 据我所知,每个线程的堆栈是分开的,但堆很常见。 不是在堆中创建ListBox对象。 在那种情况下,为什么它无法访问。 我尝试将ListBox引用作为参数传递,并尝试在BackgroundWorker中访问其内容。 在线程之间共享对象的概念是否与C ++不同?

WPF中的圆角文本框

我在网上搜索带圆角的TextBox,并找到如下的xaml代码: ****** 我想知道是什么 详细说明为什么不正确地工作我的模板如果从中删除这一行,请详细告诉我。 非常感谢。

WPF:Content和DataContext属性之间有什么区别?

据我了解…… DataContext属性 “控件使用此属性作为数据源” “是每个框架元素具有的属性,可用于将数据流入屏幕” “DataContext具有范围” “范围是根据DataContext在对象树中的分配位置建立的” “如果在父元素(例如Window)上设置DataContext,该属性将向下流向所有子元素(例如文本框)” 内容属性 此属性具有许多名称,具体取决于正在使用的控件: ContentControl.Content ItemsControl.ItemsSource Items.ItemsSource HeaderedContentControl.Header HeaderedContentControl.Content 所以我的问题是: Content和DataContext属性之间有什么区别 ? 这里有一个我很遗憾的细微差别。 是吗… DataContext数据流入UI, Content属性的工作是确定(通常是一个绑定)将显示的内容(通过ContentPresenter + ContentTemplate) 示例代码 参考 MSDN: ContentControl.Content属性 MSDN: FrameworkElement.DataContext属性 MSDN: WPF内容模型 值得阅读 StackOverflow: 什么是DataContext?

从WPF / XAML中的字符串末尾清除空格

我有一个MVVM应用程序,它使用一个填充了图像的列表框。 图像字符串总是来自我无法修改的对象,因为它是使用edmx模型生成的。 为了剪切故事,我需要在下面的xaml中添加一种方法来修剪由字符串中的SQL放入图像路径末尾的空白。 这可能吗?

MVVM WPF主细节combobox

感谢我之前在Stack Overflow上提出的一些建议,我在理解MVVM方面取得了很大的进步。 然而,当事情开始变得更加复杂时,我仍然在苦苦挣扎。 我在下面的视图是为了输入订单。 它绑定到OrderScreenViewModel的DataContext。 第一个combobox用于选择客户。 第二个combobox用于为新的OrderLine选择ProductCode。 有些项目我无法解决如何在MVVM中实现: 1)选择客户时更新Productscombobox,以便其项目源仅显示与combobox中选择的CustomerDto记录具有相同CustomerId的产品 2)当调用Load时,在Customerscombobox中设置SelectedItem,以便它显示CustomerId等于OrderDto上的CustomerId。 3)应用与1)相同的过程,以便只显示/加载属于该Customer的产品,并在Productscombobox上设置SelectedItem,使其指向与OrderLineDto中包含的ProductId相同的条目 我不知道如何继续,或者即使我的视图模型的责任是正确的。 也许它与NotifyPropertyChanged有关? 任何有关如何实现上述目标的指示将不胜感激。 我相信如果我做对了,它会对我的应用程序有很大帮助。 非常感谢Alex。 public class OrderScreenViewModel { public WMSOrderViewModel Order { get; private set; } public WMSOrderLineViewModel CurrentLine { get; private set; } public OrderScreenViewModel() { Order = new WMSOrderViewModel(); CurrentLine = new WMSOrderLineViewModel(new OrderLineDto()); } public void Load(int orderId) { var […]