Articles of wpf

如何捕获项目模板时单击ListboxItem?

我有一个ListBox与ItemsTemplate集。 现在我想要在ListBoxItem上按Ctrl +左键单击。 我发现KeyBoard类应该给我修饰键。 现在我如何获得ListBoxItem上的click事件? 更好的是,我如何将其绑定到ICommand。 我发现了一些零碎但却不知道如何连接它们。 似乎InputBinding似乎可以帮助我或EventSetter 。

如何从ItemTemplate中将Command绑定到ContextMenu?

我想将某个命令绑定到menuItem 。 所述菜单项是在ItemTemplate内定义的ContextMenu一部分。 现在,我编译并运行,但命令永远不会被调用。 在过去,我使用了类似的模式将命令挂钩到ItemTemplate定义的按钮并成功。 任何人都知道我怎么能做到这一点? XAML: C#: using System; using System.Collections.Generic; using System.Windows; using System.Windows.Data; using System.Windows.Input; namespace Wpf_treeView { public partial class MainWindow : Window { private static readonly Random rnd = new Random(); private List m_InfoData = new List(); public ListCollectionView DataInfosView { get; private set; } public static readonly DependencyProperty AddChildProperty […]

如何在WPF中重新编译空的DirectoryCatalog for MEF

我有这个步骤的应用程序: 启动应用程序和ConfigureAggregateCatalog 登录用户到应用程序 将DLL MEF模块下载到名为“Modules”的目录 刷新目录目录 – 有一个问题 我有空目录’模块’后下载DLL我试图加载模块但没有成功。 我在线上有一个错误,我称之为DirectoryCatalog.Refresh() 用户代码未处理System.ComponentModel.Composition.ChangeRejectedException消息=组合保持不变。 由于以下错误,更改被拒绝:组合产生多个组合错误,有14个根本原因。 根本原因如下。 查看CompositionException.Errors属性以获取更多详细信息。 1)由不可重组的导入阻止的导出变化’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer..ctor(Parameter =“downloadedPartCatalogs”,ContractName =“Microsoft.Practices.Prism.MefExtensions.Modularity.DownloadedPartCatalogCollection”)’部分’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer’。 2)部分’Microsoft.Practices上的非重组导入’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.mefFileModuleTypeLoader(ContractName =“Microsoft.Practices.Prism.MefExtensions.Modularity.MefFileModuleTypeLoader”)’阻止了导出的变化。 Prism.MefExtensions.Modularity.MefModuleManager”。 3)由不可重组的导入’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor(Parameter =“moduleInitializer”,ContractName =“Microsoft.Practices.Prism.Modularity.IModuleInitializer”)’阻止出口的变化’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager’。 4)部分’Microsoft.Practices’中不可重组的导入’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.mefFileModuleTypeLoader(ContractName =“Microsoft.Practices.Prism.MefExtensions.Modularity.MefFileModuleTypeLoader”)’阻止了导出的变化。 Prism.MefExtensions.Modularity.MefModuleManager”。 5)由不可重组的导入’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor(Parameter =“moduleInitializer”,ContractName =“Microsoft.Practices.Prism.Modularity.IModuleInitializer”)’阻止出口的变化’Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager’。 6)部分’GXBilling.ViewsModels.ShellViewModel’上的不可重组导入’GXBilling.ViewsModels.ShellViewModel.ModuleManager(ContractName =“Microsoft.Practices.Prism.Modularity.IModuleManager”)’阻止了导出的变化。 7)发现多个导出匹配约束’((exportDefinition.ContractName ==“Microsoft.Practices.Prism.Regions.RegionAdapterMappings”)AndAlso(exportDefinition.Metadata.ContainsKey(“ExportTypeIdentity”)AndAlso“Microsoft.Practices。 Prism.Regions.RegionAdapterMappings” .Equals(exportDefinition.Metadata.get_Item( “ExportTypeIdentity”))))”。 导致:无法设置导入’Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior..ctor(Parameter =“regionAdapterMappings”,ContractName =“Microsoft.Practices.Prism.Regions.RegionAdapterMappings”)”’部分’微软。 Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior”。 元素:Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior..ctor(Parameter =“regionAdapterMappings”,ContractName =“Microsoft.Practices.Prism.Regions.RegionAdapterMappings”) – > Microsoft.Practices.Prism.MefExtensions。 Regions.Behaviors.MefDelayedRegionCreationBehavior – > AssemblyCatalog(Assembly =“Microsoft.Practices.Prism.MefExtensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken […]

WPF日期选择器:日期和日期

我的WPFcanvas中有两个日期选择器。 我想做的就像来自航空公司网站的datepicker。 第一个日历允许用户选择出发日期,第二个日历允许用户选择返回日期。 假设我从datapickerA中选择11/11/2012,当我点击第二个datepickerB时,将禁用11/11/2012之前的日期。 我应该在datepicker中加入什么?

最大化2监视器上的WPF窗口

喜欢标题我希望我的WPF在2台显示器上最大化(现在我的电脑有2台显示器)。 我设置 this.Width = System.Windows.Forms.Screen.AllScreens[0].Bounds.Width + System.Windows.Forms.Screen.AllScreens[1].Bounds.Width 但它不完整,像图像一样间隔。 我希望用户单击最大化按钮然后窗口最大化2监视器。 有人知道吗? 谢谢你们! p / s:抱歉我的英语不好。

C#WPF不确定进度条

请有人建议为什么以下不起作用? 我想要做的就是显示一个不确定的进度条,它在单击按钮时启动,然后在我完成一些工作后,我将不确定的进度条设置为false以停止它。 但是当我运行下面的代码时,不确定的进度条甚至都没有启动。 我尝试注释掉“this.progressBar.IsIndeterminate = false;”这一行,当我这样做时,进度条确实启动但后来没有终止。 请有人帮忙。 谢谢 private void GenerateCSV_Click(object sender, RoutedEventArgs e) { this.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate () { this.progressBar.IsIndeterminate = true; //do some work Thread.Sleep(10 * 1000); this.progressBar.IsIndeterminate = false; })); } }

.net消息循环

任何人都可以帮助解释如何在WPF中与消息循环交互? 我知道如何使用它 System.Windows.Threading.Dispatcher.Run() 现在,我只需要一种方法来调用它。 我有一个while循环,我想从它处理消息循环中的消息。 while (state == DebuggerStaus.Waiting) { Thread.Sleep(10); //>> Here I want to call a message loop << } 等待你的建议。 最好的祝福。 PS我需要能够在线程处于while循环时将方法INVOKE引入此线程。 这是我的主要目标。

将UserControl转换为自定义控件

下面的UserControl运行良好,但我想更容易更改样式。 我尝试过的一件事是将其转换为自定义控件,但我仍然坚持基础知识如何在处理属性更改的静态方法中设置ToolTip(参见下文) 另一件事我试图将Style转换为ResourceDictionary中的通用按钮样式,但这是这个问题的主题 如何在我的子类Button中设置ToolTip? 干杯 UserControl XAML: _Add New Subject UserControl代码背后: public partial class AddNewItemButton : UserControl { public AddNewItemButton() { InitializeComponent(); } public static readonly DependencyProperty SubjectProperty = DependencyProperty.Register( “Subject”, typeof (string), typeof (AddNewItemButton), new FrameworkPropertyMetadata(OnSubjectChanged)); public string Subject { get { return (string) GetValue(SubjectProperty); } set { SetValue(SubjectProperty, value); } } private static […]

在wpf c#中重新排列wrappanel内的CustomControl

我在一个wrappanel中动态创建一个customcontrol。 现在我需要重新排序wrappanel内的自定义控件。 是否可以使用拖放重新排列wrappanel内的自定义控件? 这是我的XAML代码 我已经尝试将包装面板放在列表中,因为它是由给定答案(Ilan的答案)建议的,现在我的面板无法在后面的代码中访问。 我做错了什么?

在Entity Framework和WPF UI中显示计算属性

我的EF数据模型中有一个下载实体。 它的两个属性Size和BytesDownloaded计算得到我在partial类中创建的Progress属性: partial class Download { public int Progress { get { if (!Size.HasValue || Size.Value == 0) return 0; return Convert.ToInt32(Math.Floor(100.0 * ((double)BytesDownloaded / (double)Size))); } } } 在我的WPF UI中,我有: 由于Progress不是实体模型(edmx)的一部分,因此我必须通知UI它应该更新ProgressBar。 我以为我可以这样做: partial void OnBytesDownloadedChanging(long value) { ReportPropertyChanging(“Progress”); } partial void OnBytesDownloadedChanged() { ReportPropertyChanged(“Progress”); } 这编译很好,但是当我运行应用程序并调用OnBytesDownloadedChanging / Changed时,我在调用ReportPropertyChanging / Changed时遇到此exception: 属性“Progress”在实体对象上没有有效的实体映射。 有关更多信息,请参阅Entity Framework文档。 我理解错误信息的内容,但我不明白我能做些什么才能真正实现我的目标。 […]