草庐IT

wpf-grid

全部标签

c# - WPF:如何从网格控件的所有区域打开上下文菜单

我正在尝试将ContextMenu添加到WPF列表框中的项目;................问题是ContextMenu只会在单击Grid的实际上下文时打开,我希望能够通过单击Listbox项目上的任意位置来打开菜单。我应该将Grid包裹在其他控件中吗? 最佳答案 自从我进行任何可靠的WPF开发(从应用程序开发转移到实际的游戏团队)以来已经有几个月了。根据内存,您想在Border上设置ContextMenu属性,然后设置Border.Background=Transparent。将背景设置为透明可确保它将参与命中检测。替代解决方案

c# - 如何在 wpf 的分层数据模板中显示 TreeView 项的上下文菜单

如何使用分层数据模板在wpf中显示TreeView项的上下文菜单?如何仅为CountryTemplate显示上下文菜单: 最佳答案 您还可以将ContextMenu添加到数据模板中的任何可视子项,例如: 关于c#-如何在wpf的分层数据模板中显示TreeView项的上下文菜单,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/13420994/

c# - 如何在 WPF 中保存全局应用程序变量?

在WPF中,我可以在一个UserControl中保存值,然后在另一个UserControl中再次访问该值,类似于网络编程中的session状态,例如:UserControl1.xaml.cs:Customercustomer=newCustomer(12334);ApplicationState.SetValue("currentCustomer",customer);//PSEUDO-CODEUserControl2.xaml.cs:Customercustomer=ApplicationState.GetValue("currentCustomer")asCustomer;//PS

c# - WPF Grid.IsSharedSizeScope 跨多个网格

我有这样一种情况,我在多个网格中有按钮,并且要求所有按钮的大小都相同。我尝试使用Grid.IsSharedSizeScope但未成功。最终布局应如下图所示,但所有按钮的大小应相同。XAML当前看起来像这样。有人看到我哪里出错了吗? 最佳答案 仅将Grid.IsSharedSizeScope应用于顶级容器。引用下面的代码。 关于c#-WPFGrid.IsSharedSizeScope跨多个网格,我们在StackOverflow上找到一个类似的问题: https:

c# - 如何在没有代码隐藏的情况下处理我的 ViewModel 中的 WPF 路由命令?

根据我对MVVM的理解,直接在ViewModel中处理路由命令是一种很好的做法。当路由命令在ViewModel中定义为RelayCommand(或DelegateCommand)时,很容易像这样直接绑定(bind)到命令:Command={BindingMyViewModelDefinedCommand}。实际上,对于在我的ViewModel外部定义的路由命令,我在View的代码隐藏中处理这些命令并将调用转发到ViewModel。但我觉得我不得不这样做很尴尬。它违背了推荐的MVVM良好实践。我认为应该有一种更优雅的方式来完成这项工作。如何直接在ViewModel中处理“System.W

c# - 来自其他对象的 wpf 命令参数

我想知道如何为以下内容标记XAML。我有一个基于ICommand的对象的View模型。我有一个带有文本框和按钮的表单。该按钮通过Command="{BindingMyButtonInViewModel}"连接到ICommand对象。我想做的是将按钮的CommandParameter设置为等于文本框文本中的任何内容,例如调用“搜索”,但显然不知道如何跨控件Hook在View中。 最佳答案 以下XAML应该可以将TextBox中的文本作为参数传递给您的命令。 关于c#-来自其他对象的wpf命

c# - Dispatcher.Invoke with anonymous delegate 在 Silverlight 中有效但在 WPF 中无效

在Silverlight4中,我有一个自定义服务类,它有一个异步的Completed事件。在Completed事件中,我获取返回的数据并通过如下方式调用填充方法:privatevoidservice_Completed(objectsender,CompletedEventArgsargs){Dispatcher.BeginInvoke(()=>populateInbox(args.Jobs));}privatevoidpopulateInbox(Listjobs){inbox.DataContext=jobs;}BeginInvoke在SL4中工作,但是当我将它移植到WPF时,出现以

c# - 在 WPF 中覆盖 OnStartup

出于某种原因,我根本无法让它工作。我从各种来源了解到,我可以在WPF应用程序中覆盖OnStartup,它会在应用程序创建时触发。但是,无论我做什么,都没有发生任何事情。这是代码。publicpartialclassApp:Application{protectedoverridevoidOnStartup(StartupEventArgse){//Mycodegoeshere,butnothingeverhappens.base.OnStartup(e);}}显然我遗漏了一些东西。遗憾的是,MSDN页面也没有提供太多信息。http://msdn.microsoft.com/en-us/

c# - 调用线程必须是 STA,因为在 WPF 中很多 UI 组件都需要这个错误。在 form.show() 上

首先,我在网站上阅读了几个类似问题的答案,但老实说,我觉得它们有点令人困惑(由于我缺乏经验而不是答案!)。我正在使用FileSystemWatcher()类来监视正在创建/更改的文件的文件夹。事件发生后,我想在项目中加载另一个表单。当新表单上的构造函数试图执行时,我没有加载表单,而是收到错误。我只使用一个线程-我没有尝试在不同的线程下加载表单。我的代码如下//MainWindowpublicstaticvoidFolderWatcher(){FileSystemWatcherfsWatcher=newFileSystemWatcher();fsWatcher.Path="C:\\dum

c# - c# wpf 动画结束时运行 Action

我正在学习wpf,同时用它开发应用程序。我很难弄清楚如何在双动画(或其他类型)完成后运行某些东西。例如:DoubleAnimationmyanim=newDoubleAnimation();myanim.From=10;myanim.To=100;myanim.Duration=newDuration(TimeSpan.FromSeconds(3));myview.BeginAnimation(Button.OpacityPropert,myanim);//CodetodosomethingwhenanimationendsusingSystem;usingSystem.Collect