Tag: wpf

我需要什么才能进一步限定DataContext的绑定?

我在这个问题中创建并将引用的文件是: TechnicainSelectionView.xaml TechnicianSelectionView.cs TechnicianSelectionViewModel.cs Technician.cs (Code First Entity) 我的TechnicanSelectionView.xaml中有以下xaml ItemSource设置为绑定到的Technicians属性指出Cannot resolve Technicians due to an unknown DataContext. 因此,如果我们查看我的TechnicianSelectionView.cs代码隐藏… public partial class TechnicianSelectionView : UserControl { public TechnicianSelectionViewModel ViewModel { get; private set; } public TechnicianSelectionView() { InitializeComponent(); Technician.GenerateSeedData(); ViewModel = new TechnicianSelectionViewModel(); DataContext = ViewModel; } } …我们看到我将视图的DataContext设置为我的TechnicianSelectionViewModel … public class TechnicianSelectionViewModel : ViewModelBase { […]

如何在复杂的WPF场景中组织资源(样式,…)?

如何组织WPF资源 – 包括样式,模板等 – 以便我可以在Windows,Pages甚至项目中使用它们。 我有哪些选项可以实现资源的最大可重用性和可维护的结构(例如每个模板一个文件)? 例如:我正在创建一个WPF应用程序,我想使用TabControl,但我想对它进行重大更改。 所以我可以创建一个样式并将其应用于TabControl和TabItem。 没关系,但是我可以在哪里放置我的资源以保持我的Window XAML清晰,并且可以从其他Windows或项目访问该样式? 我发现我可以将它添加到App.xaml,但这只是一个项目的解决方案,只允许在这个项目的项目之间共享。 另外,我认为将这些模板与其他代码分开,而不是将它们全部放在某个页面或app.xaml中会更好吗?

使用Prism和MVVM Pattern在WPF中进行模态对话的“漂亮”方法

昨天我用谷歌找到了几种方法,用PRISM 4.1和MVVM模式在WPF中制作了一个非常棒的可重用modal dialog。 我发现了一些例子,但我必须说那些不像我喜欢它们那样“漂亮”。 这一个: WPFmodal dialog (没有mvvm – >没用) 这非常好: 在使用MVVM模式时显示Dialogs (但它仍然使用我不需要的自制ServiceLocator,因为我正在使用IUnity容器。我可以使用逻辑并将其重写为Unity但这不是“漂亮的” “我诚实的看法。 好吧,经过一段时间在网上搜索信息,一些博客(现在找不到源代码)告诉我,PRISM框架有一个叫做“交互请求”的东西。 所以我查看了prism文档并在“高级mvvm场景”主题下找到了一小部分,但文档中给出的信息还不够。 我想知道是否有人有任何好的例子或任何好的博客文章,关于如何用mvvm在prism wpf中实现一个很棒的modal dialog。 编辑 :关于评论中的问题: 是什么让模态对话变得棒极了? 确实是个好问题。 它必须是模态的(当对话框打开时,UI的其余部分应该被冻结) 对话框视图可以拥有自己的viewmodel,或者至少我想将对象的实例提供给对话框视图并将对象返回给父视图 视图应该是一个自己的“xaml”文件 .NET中的dialogresultfunction,或者至少是一种获取用户在对话框中单击的响应的方法

如何将XPS文件转换为高质量的图像(而不是模糊的低分辨率)?

我正在尝试使用WPF转换XPS。 想法是这些图像可以加载silverlight 4,为此我使用以下代码: // XPS Document XpsDocument xpsDoc = new XpsDocument(xpsFileName, System.IO.FileAccess.Read); FixedDocumentSequence docSeq = xpsDoc.GetFixedDocumentSequence(); // The number of pages PageCount = docSeq.References[0].GetDocument(false).Pages.Count; DocumentPage sizePage = docSeq.DocumentPaginator.GetPage(0); PageHeight = sizePage.Size.Height; PageWidth = sizePage.Size.Width; // Scale dimensions from 96 dpi to 600 dpi. double scale = 300/ 96; // Convert a XPS page to a […]

使用MVVM在TreeView中显示实体

我正在按照MVVM模式制作WPF应用程序。 在这我使用entity framework, 我的实体结构很简单,它有3个实体:部门,课程,书籍, 一个部门可以有很多课程,一门课程可以有很多书, 现在我想在树视图中显示这个,所以我在wpf中的输出应该是这样的, Department1 Course1 Book1 Book2 Course2 Book3 Department2 Course Book Department3 在我的ViewModel中我有EntityContext对象。 但我不知道如何在树视图中显示这一点。 我怎么能做到这一点。

如何从RichTextBox获取RTF

如何获取RichTextBox RTF中的文本? 我试图这样,但财产不存在。 RichTextBox rtb = new RichTextBox(); string s = rtb.Rtf;

是否期望这种慢速WPF TextBlock性能?

我正在做一些基准测试,以确定我是否可以将WPF用于新产品。 然而,早期的表现结果令人失望。 我制作了一个快速的应用程序,它使用数据绑定每100毫秒在列表框内显示一堆随机文本,它占用了大约15%的CPU。 所以我创建了另一个跳过数据绑定/数据模板方案的快速应用程序,除了每100毫秒更新一个ListBox内的10个TextBlocks之外什么都不做(实际产品不需要100毫秒更新,更像是500毫秒最多,但是这是一个压力测试)。 我仍然看到大约5-10%的CPU使用率。 为什么这么高? 是因为所有的垃圾串吗? 这是不使用绑定的版本的XAML: 这是背后的代码: public partial class Window1 : Window { private int _count = 0; public Window1() { InitializeComponent(); } private void OnLoad(object sender, RoutedEventArgs e) { var t = new DispatcherTimer(TimeSpan.FromSeconds(0.1), DispatcherPriority.Normal, UpdateNumerics, Dispatcher); t.Start(); } private void UpdateNumerics(object sender, EventArgs e) { ++_count; foreach (object textBlock in […]

如何在辅助显示中设置WPF窗口位置

我有两个显示器。 我想制作一个媒体播放器,我想在我的辅助显示器上全屏播放video。 所以我正在尝试使用WPF制作媒体播放器 这是我写的代码到目前为止 Screen[] _screens = Screen.AllScreens; System.Drawing.Rectangle ractagle = _screens[1].Bounds; //player is my window player.WindowState = WindowState.Maximized; player.WindowStyle = WindowStyle.None; player.Left = ractagle.X; player.Top = ractagle.Y; // MediaControl is an media elements MediaControl.Height = ractagle.Height; MediaControl.Width = ractagle.Width; 但不知何故,它只是在我的第一个显示器上播放。 非常感谢任何forms的帮助。

全局更改ToolTip InitialShowDelay属性

我有一个应用程序,在Ribbon控件上设置了超过一百个不同的工具提示。 所有的工具提示都会很快弹出(大约半秒钟),我想增加弹出延迟。 经过一些研究后,似乎在WPF中执行此操作的唯一方法是通过ToolTipService.InitialShowDelay属性。 我的问题是,我是否必须通过XAML并明确说出来 ToolTipService.InitialShowDelay=”2000″ 对于每个具有ToolTip的控件? 或者是否有某种方法可以使用类似Style的方式全局设置此属性? 谢谢你的任何想法。

WPF StoryBoard.Completed事件未触发

关闭主窗口之前我有一个动画,如下面的代码所示。 问题是StoryBoard.Completed没有触发。 是什么原因引起了这个? 码 DoubleAnimation dblAnimX = new DoubleAnimation(1.0, 0.0, new Duration(TimeSpan.FromSeconds(0.5))); dblAnimX.SetValue(Storyboard.TargetProperty, this); DoubleAnimation dblAnimY = new DoubleAnimation(1.0, 0.0, new Duration(TimeSpan.FromSeconds(0.5))); dblAnimY.SetValue(Storyboard.TargetProperty, this); Storyboard story = new Storyboard(); Storyboard.SetTarget(dblAnimX, this); Storyboard.SetTarget(dblAnimY, this); Storyboard.SetTargetProperty(dblAnimX, new PropertyPath(“RenderTransform.ScaleX”)); Storyboard.SetTargetProperty(dblAnimY, new PropertyPath(“RenderTransform.ScaleY”)); story.Children.Add(dblAnimX); story.Children.Add(dblAnimY); story.Begin(this); story.Completed += (o, s) => { this.Close(); };