草庐IT

c# - WPF 调度程序 {"The calling thread cannot access this object because a different thread owns it."}

首先我需要说我是WPF和C#的菜鸟。应用程序:创建Mandelbrot图像(GUI)在这种情况下,我的调度员工作得很好:privatevoidprogressBarRefresh(){while((con.Progress)尝试使用以下代码执行此操作时,我收到了消息(标题):bmp=BitmapSource.Create(width,height,96,96,pf,null,rawImage,stride);this.Dispatcher.Invoke(DispatcherPriority.Send,newAction(delegate{img.Source=bmp;ViewBox.C

c# - 多个命令参数wpf按钮对象

如何从WPF中的Button发送多个参数?我能够正确发送作为TextBox值的单个参数。这是代码。XAML代码隐藏publicICommandCommandClick{get;set;}this.CommandClick=newDelegateCommand(AddAccount);privatevoidAddAccount(objectobj){//customlogic} 最佳答案 除了使用在您的类(我们称之为您的ViewModel)中定义属性的方法来绑定(bind)您的View之外,有时(不常见)我们不想这样做,这是一个重要的

c# - WPF:从代码动画化 TranslateTransform

我有一个WPFCanvas,我在上面通过代码动态创建对象。这些对象正在通过设置RenderTransform属性进行转换,并且需要应用这些转换之一的动画。目前,我无法获取任何转换的属性以进行动画处理(尽管没有引发异常并且动画似乎在运行-已引发完成的事件)。此外,如果动画系统受到压力,有时Storyboard.Completed事件永远不会引发。我遇到的所有示例都对XAML的转换进行动画处理。MSDNdocumentation建议必须将转换的x:Name属性设置为可动画化,但我还没有找到从代码中设置它的有效方法。有什么想法吗?这是重现问题的完整代码list:usingSystem;usi

c# - 在桌面上拖动 WPF 窗体

我正在尝试制作一个c#WPF表单,我可以通过单击它并用鼠标移动它来在屏幕上拖动它。表格的特征包括完全透明和只包含一个图像。这就是说窗口样式是无的,它不显示在任务栏中。因此,当应用程序运行时,您基本上只能看到一个小图像-理想情况下,如果我单击并按住鼠标左键并移动它,我希望能够将它拖到桌面上。有谁知道我可以用一种简单的方法来完成这个,还是我忽略了一个内置函数?谢谢。 最佳答案 以前的答案都中了答案,但是完整的例子是这样的:privatevoidWindow_MouseDown(objectsender,MouseButtonEventA

c# - 如何允许从 Windows 资源管理器拖放至 C# WPF 应用程序?

我知道有很多关于这个主题的答案,但我仍然无法让它发挥作用。我已经在应用程序的每个级别的每个控件上启用了AllowDrop,并尝试在每个控件上捕获DragEnter和Drop但无济于事。我可以在应用程序中拖放项目,但任何时候我尝试从Windows资源管理器或桌面等中引入一些东西时,它都会给我一个“否”图标。知道我可能做错了什么吗?这是我正在做的一个例子。仍然不显示移动光标,也不会点击MainWindow_DragEnter函数。namespaceWpfApplication1{//////InteractionlogicforMainWindow.xaml///publicpartial

c# - 每当在 wpf 中滚动任何一个时,两个 ScrollViewer 的同步滚动

我已经完成了线程:bindingtwoVerticalScrollBarsonetoanother它几乎帮助实现了目标,但仍然缺少一些东西。左右移动滚动条或上下移动滚动条会在我的两个滚动查看器中产生预期的滚动行为,但是当我们尝试使用/单击滚动查看器中这些滚动条末端的箭头按钮进行滚动时,只有一个滚动查看器被滚动,而不是预期的行为。那么我们还需要添加/编辑什么来解决这个问题? 最佳答案 一种方法是使用ScrollChanged事件来更新另一个ScrollViewerprivatevoidScrollChanged(objectsende

c# - 如何在不在 wpf 中引入新引用的情况下从 View 模型 (.cs) 调用窗口 (.xaml.cs) 中的方法

我正在寻找一种在我的主窗口中调用方法的简单方法,但我想从我的View模型中调用它。基本上,我正在寻找某种“this.parent”之王,将其放入View模型中以引用主窗口。或者,如果您想了解我想要这样做的原因并告诉我另一种解决问题的方法:我正在使用一个不断获取信息的应用程序。在View模型中,信息被处理。我想在每次有满足某种条件的信息进来时发出通知。最初,我在View模型中有一个字典,用于存储有关该信息的信息,我在MainWindow中访问该字典,以便我可以使窗口闪烁并发送其他通知。但是当我在MainWindow中访问它时,我遇到了viewmodel的字典不断变化的问题。如果这个问题听

c# - WPF - 将 List<T> 绑定(bind)为 WrapPanel 的内容

是否可以将WrapPanel的内容(子项)绑定(bind)到依赖属性?我在想的是拥有一个List类型的依赖属性,然后为MyClass定义一个模板。然后让WrapPanel显示它们。我知道使用列表框更容易做到这一点,但由于其他限制,我需要在转到列表框之前尝试使用WrapPanel。我正在使用MVVM。我更喜欢以那种模式这样做。如果我要脱离MVVM,我可以只使用一个事件或命名它并在加载时填充它。我希望有一种更简洁的绑定(bind)方式。 最佳答案 ItemsControl是你的friend:

c# - WPF:在 ListView 中添加项目时引发事件

我在WPF上工作,我正在使用ListView,我需要在向其中添加项目时触发一个事件。我试过这个:vardependencyPropertyDescriptor=DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty,typeof(ListView));if(dependencyPropertyDescriptor!=null){dependencyPropertyDescriptor.AddValueChanged(this,ItemsSourcePropertyChangedCallback

c# - WPF-保存文件对话框

我在WPF中使用SaveFileDialog导出到用户选择的特定位置的excel文件。但是在SaveFileDailog打开和用户点击对话框上的Cancel按钮之间,我收到另一个对话框,上面写着“Doyouwanttosavechangesyoumade到'Sheet1'?”然后是“Exportcompleted”而不是取消导出。那么我该怎么做才能解决这个问题呢?WPF中的任何内容,例如'DialogResult'是否与winForms中的相同? 最佳答案 如果用户保存,SaveFileDialog将返回true(ShowDialo