Tag: wpf

软件渲染模式 – WPF

我有一个WPF用户控件,我需要在RenderMode.SoftwareOnly强制渲染。 由于我使用的是.NET 3.5,我不得不做类似的事情, var hwndSource = PresentationSource.FromVisual(this) as HwndSource; if (hwndSource != null) { hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly; } 但这不适用于我的应用程序,WPF程序在少数计算机上崩溃,关闭注册表级别的硬件加速似乎解决了这个问题。 上面的代码是在窗口的Loaded事件中编写的。 如果我是正确的,则在呈现控件( MSDN )之后发生Loaded事件。 那么在这个事件中有上面的代码是否有意义? 如果没有,哪个事件适合它? 另外,在视觉上设置RenderMode会影响它的孩子吗? 或者我是否需要为每个子元素专门设置它? 任何帮助都会很棒!

在WPF中,您可以在没有代码的情况下过滤CollectionViewSource吗?

真的,这个主题说明了一切。 并不是说我不能拥有代码。 它只是唠叨我。

Windows 10通用应用程序文件/目录访问

我正在开发一个从文件系统上的可配置位置读取jpeg和pdf文件的应用程序。 目前有一个在WPF中实现的运行版本,现在我正在尝试迁移到新的Windows Universal应用程序。 以下代码适用于WPF: public IList GetFilesByNumber(string path, string number) { if (string.IsNullOrWhiteSpace(path)) throw new ArgumentNullException(nameof(path)); if (string.IsNullOrWhiteSpace(number)) throw new ArgumentNullException(nameof(number)); if (!Directory.Exists(path)) throw new DirectoryNotFoundException(path); var files = Directory.GetFiles(path, “*” + number + “*”, SearchOption.AllDirectories); if (files == null || files.Length == 0) return null; return files; } 使用通用应用程序我遇到了一些问题: Directory.Exists不可用 如何从应用程序存储区外的目录中读取? 要从应用程序存储区外的其他目录中读取,我尝试了以下操作: StorageFolder folder […]

如何在C#中为canvas上的线设置动画?

你会如何在屏幕上画一条线? 我试图在C#/ WPF项目中的canvas上设置一条线。 我想使用C#代码而不是XML。 谢谢。

在WPF C#中更改文本某些部分的颜色和字体

有没有办法改变我希望放在TextBox或RichTextBox上的文本的某些部分的颜色和字体。 我正在使用C#WPF。 例如 richTextBox.AppendText(“Text1 ” + word + ” Text2 “); 例如,变量字是Text1和Text2中的其他颜色和字体。 有可能,怎么做?

page.DataContext不是从父Frameinheritance的?

我在Frame frame有一个页面page ,其中frame.DataContext = “foo” 。 (page.Parent as Frame).DataContext是”foo” 。 好 page.DataContext BindingExpression为null (也强制使用ClearValue)。 好 page.DataContext为null 。 但我期待“foo”! 为什么DataContext没有inheritance? 据我所知 ,Frame 沙箱的内容。 但我找不到任何关于这种行为的文件 – 有人能指出我提到这个的地方吗?

将事件传递给ViewModel的最佳方法是什么?

案例是:我有一个控件的事件,我希望我的ViewModel作出反应。 目前我正在通过执行隐藏按钮的命令来执行此操作,如下例所示。 在View.xaml中: 在View.xaml.cs中: private void SearchResultRefreshed(object sender, EventArgs e) { if (SearchResultRefreshedButton.Command != null) { SearchResultRefreshedButton.Command.Execute(SearchResultGrid.ResultRowCount); } } 这很好用,但对我来说看起来像是一个黑客。 我想知道是否有更好的(标准)方式这样做? 我找不到任何例子,这就是我自己“发明”的东西。

创建单实例WPF应用程序的正确方法是什么?

在.NET(而不是Windows窗体或控制台)下使用C#和WPF,创建只能作为单个实例运行的应用程序的正确方法是什么? 我知道它与一些叫做互斥的神话故事有关,我很少能找到一个不愿意停下来解释其中一个是什么的人。 代码还需要通知已经运行的实例用户尝试启动第二个,并且如果存在任何命令行参数,也可以传递。

将Resources.resx中的BitmapImage分配给Image.Source?

我想从我的Resources.resx中分配一个BitmapImage到一个Image 。 事先我将.png图像保存到Resources.resx。 此图片现在位于“/Resources/logo.png”中。 在阅读了几篇SOpost和其他文章后,我现在有了这个: logoImage.Source = new BitmapImage(new Uri(@”pack://application:,,,/Resources/logo.png”)); 不幸的是它不起作用。 我不知道如何解决这个问题。 我试图用完整路径替换Pack-URI并且它工作但是我想使用相对路径以便在绝对路径不正确的不同机器上使用相同的源。 任何人都可以帮我解决这个问题吗? 提前致谢!

WPF图像到byte

我正在尝试从System.Windows.Controls.Image转换为byte[] ,我不知道Image类中哪个方法可以帮助这个场景,顺便说一下我真的不知道该怎么做,因为我的LINQ模型该字段显示为Binary类型,如果我想将其保存为byte[]类型,我必须更改它吗? 我在这里发现了代码,但没有使用WPF: Bitmap newBMP = new Bitmap(originalBMP, newWidth, newHeight); System.IO.MemoryStream stream = new System.IO.MemoryStream(); newBMP.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); PHJProjectPhoto myPhoto = new PHJProjectPhoto { ProjectPhoto = stream.ToArray(), // <<— This will convert your stream to a byte[] OrderDate = DateTime.Now, ProjectPhotoCaption = ProjectPhotoCaptionTextBox.Text, ProjectId = selectedProjectId };