Tag: wpf

停止WPF动画,故事板在xaml中开始但在代码隐藏中停止吗?

我在xaml文件中创建了一个动画故事板。 那个故事板开始于Button.Click。 但是为了停止动画,我试图在代码背后的自定义事件上停止故事板。 代码没有抛出任何exception但是当我的事件被触发时,动画仍然继续。 我认为问题在于Stop方法。 停止需要与开始动画相同的对象来停止它。 但是这里的故事板是从WPF xaml开始的,我在后面的代码中停止它。 任何解决方案,如何在代码中获取Xaml对象或任何替代解决方案? XAML代码: 代码背后: private void EventPublisher_OnScanningFinish(object sender, EventArgs args) { Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate() { this.StopScanningAnimation(); }); } private void StopScanningAnimation() { ServerView.StoryBoardServerScrolling.Stop(this); //———- Not Working //this.ServerView.Server1Static.Visibility = System.Windows.Visibility.Hidden; //this.ServerView.Server2Static.Visibility = System.Windows.Visibility.Hidden; //this.ServerView.Server3Scrolling.Visibility = System.Windows.Visibility.Hidden; //this.ServerView.SearchingGlass.Visibility = System.Windows.Visibility.Hidden; }

C#/ WPF:禁用RichTextBox的文本换行

有谁知道如何禁用RichTextBox的文本包装? 例如,如果我有一个不适合窗口的大字符串, RichTextBox放置一个无法显示新行的字符串部分。 我想禁用它(并且仅通过使用Scrollbar使其可见)。 非常感谢。 干杯

如何在标准WPF ListView中启用UI虚拟化

我正在使用.NET 4.5 / VS2012,我有一个ListView看起来像这样 – logs 但性能仍然没有改善。 我找到了一个使用ListBox的例子,但是如何虚拟化ListView? 我挣扎了很多。 我听说通过分组,在以前版本的WPF中关闭了虚拟化,但是使用.NET 4.5,WPF有一个IsVirtualizingWhenGrouping属性,我已经将它设置为True 。 更新 :罪魁祸首是自定义样式,删除后,列表视图像黄油一样平稳运行

代码背后的绑定属性

我有WPF应用程序和一个窗口。 让我的xml中有这样的东西: 让我们说我不能使用xml来创建BottomLabel和TitleLabel 。 所以我必须在我的“Code behind”中创建BottomLabel作为属性。 如何在我的代码后面为Bottom标签的Content属性指定相同的绑定? 有可能吗? 所以我会有这样的事情: public Label TitleLabel {get; private set;} public Label BottomLabel {get; private set;} public MyClass(){ TitleLabel = new Label(); TitleLabel.Content = “Some title”; BottomLabel = new Label(); BottomLabel.Content = // ?? what should be here ? How do I specify the binding // that binds BottomLabel.COntent to […]

图像文件副本正被另一个进程使用

我正在尝试创建一个用户perfil编辑窗口,在这个窗口中有一个Image控件 当我选择一个图像文件时,它将显示在此Image控件中并将此文件复制到我的图像文件夹中,第一次就可以了,但第二次显示错误 “该进程无法访问文件’C:\ 1.jpg’,因为它正被另一个进程使用。” 我认为这是因为我的Image控件正在使用这个文件,所以,我不知道我能做什么 private void Select_Click(object sender, RoutedEventArgs e) { OpenFileDialog od = new OpenFileDialog(); if (od.ShowDialog() == true) { string imageLocal = @”C:/1.jpg”; File.Copy(od.FileName, imageLocal, true); image1.Source = new BitmapImage(new Uri(imageLocal)); } }

为什么WPF设计器无法加载调用非托管DLL的库?

我正在使用Visual Studio 2008,.NET 3.5 SP1,并拥有一个包含以下模块的测试应用程序: 一个C ++ DLL 使用#1的C ++ / CLI DLL 使用#2的C#WPF应用程序 当我尝试使用#2中的类作为WPF XAML中的资源时,设计师不会让我: <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:lib1="clr-namespace:ClassLibrary1;assembly=ClassLibrary1" <- ERROR 错误是:“找不到程序集’ClassLibrary1’。确认您没有错过程序集引用。另外,请validation您的项目和所有引用的程序集是否已构建。” 但是当我在应用程序主窗口的代码隐藏中使用C ++ / CLI DLL中的类时,一切正常。 创建了Class1,并在其构造函数中调用C ++ DLL,没问题。 using ClassLibrary1; … public partial class Window1 : Window { public Window1() { InitializeComponent(); //use in code-behind Class1 tmp = new Class1(); tmp.FirstName […]

Twoway-bind视图的DependencyProperty到viewmodel的属性?

网上的多个源告诉我们,在MVVM ,视图和视图模型之间的通信/同步应该通过依赖属性进行。 如果我理解正确,应该使用双向绑定将视图的依赖项属性绑定到viewmodel的属性。 现在,之前已经提出了类似的问题,但没有足够的答案。 在我开始分析这个相当复杂的问题之前,这是我的问题: 如何将自定义视图的DependencyProperty与viewmodel的属性同步? 在理想的世界中,您只需将其绑定为: 这不起作用,因为MyProperty不是UserControl的成员。 卫生署! 我尝试了不同的方法,但没有一个certificate是成功的。 一种解决方案是定义一个基类UserControlEx ,它具有必要的依赖属性,以使上述工作正常。 然而,这很快变得非常混乱。 还不够好!

加快在WPF中向Canvas添加对象的速度

我有一个Canvas ,我在WPF中使用它绘制许多彩色矩形,但程序在添加时运行速度非常慢。 我尝试了不同的选项,例如将它们添加到Array并一次添加它们并使用Image而不是Canvas来调度它们,但它们似乎没有做太多。 我在一个线程中有编码导致绘图,但由于C#规则,我必须在主线程中有绘图部分。 我还应该注意,问题不在于我的电脑(它运行的英特尔酷睿i7配备14GB DDR2内存)。 这是添加矩形的代码。 它跑了83,000多次。 private void AddBlock(double left, double top, double width, double height, Brush color) { if (this.Dispatcher.Thread != Thread.CurrentThread) { this.Dispatcher.Invoke(new Action(this.AddBlock), left, top, width, height, color); return; } Rectangle rect = new Rectangle() { Width = width, Height = height, Fill = color, SnapsToDevicePixels = true }; this.canvas.Children.Add(rect); […]

如何使用WPF中的Frame控件进行过渡效果?

我觉得这很容易,但我猜不是。 我有两页加载到我的帧控件中。 我希望能够从一个页面到下一个页面具有漂亮的幻灯片效果,或者只是一个简单的淡入效果。 似乎无法在互联网上的任何地方找到它。 更新1接受的答案很好,但我在这里找到了更好的答案。 http://www.japf.fr/2008/07/8/comment-page-1/ 更新2如果您相信它我找到了更好的解决方案。 http://fluidkit.codeplex.com/

一个用于UserControl和Window的ViewModel或单独的ViewModel

我有MainWindow和AddEdit UserControl 。 在MainWindow内部,我将此AddEdit呈现为 ,之前此命名空间已添加到Window元素: xmlns:Views=”clr-namespace:MyProject.WPF.Views” +++++++++++++++ ++++++++++++++++ ListOfData + + DataDetails + + + + DataOne + + Name: txtBox1+ DataTwo + + + DataThree + + + + + Save data + +++++++++++++++ ++++++++++++++++ 当用户选择左侧的数据时(例如DataTwo)我想在AddEdit用户控件(DataDetails面板)中显示它的属性(为简单起见,只有Name属性)。 由于此UserControl与MainWindow分开存储,我应该使用相同的MainWindowViewModel和相同的datacontext,还是应该为AddEdit UserControl创建单独的ViewModel? 希望这听起来很清楚,如果不是,请询问详细信息。