Tag: wpf

使TabControl标题在WPF中可滚动

如标题中所提到的,我想将TabControl的标题更改为可滚动。 原因是:我有太多的tabItems,在我的情况下,包装不是最好的解决方案。 所以我想改变它: 对于类似的东西(箭头指示的滚动条): 任何人都可以帮助我并展示如何做到这一点? (我正在使用wpf)

WPF附加文本阻止UI线程,但WinForms没有?

我最近将我的应用程序从WinForms转换为WPF,我对大多数新function感到满意。 然而,我遇到了一个重要的绊脚石。 当我不断地将文本附加到我的文本框时,UI线程变得如此封闭,以至于我无法做任何事情,只是看它附加文本! 我需要能够在我的选项卡控件,单击按钮等等中切换选项卡。奇怪的是,我在WinForms的UI线程中绝对没有减速! 所以,这里有一个关于我的应用程序的背景:它将其他进程作为“动作队列”的一部分运行,并将这些进程的stdout和stderr吐出到两个单独的文本框中,以及日志文本框(这些是受影响的文本框)。 在低输出进程中,没有减速,但是当我使用SVN checkout和文件复制等进程时,我会立即获得大量文本输出,它只能附加文本。 这是我的打印代码: public void PrintOutput(String s) { String text = s + Environment.NewLine; Window.Dispatcher.Invoke(new StringArgDelegate(Window.PrintOutput), text); Debug.Log(“d ” + text); } public void PrintLog(String s) { ClearLogButtonEnabled = true; String text = s + Environment.NewLine; Window.Dispatcher.Invoke(new StringArgDelegate(Window.PrintLog), text); } 和匹配的代码隐藏: public void PrintOutput(String s) { outputTextBox.AppendText(s); outputTextBox.ScrollToEnd(); if (!clearOutputButton.IsEnabled) […]

加载要在WrapPanel中显示的大量图像

我正在使用Entity Framework Code First 我有这样的电影 : public class Movie { public byte[] Thumbnail { get; set; } public int MovieId { get; set; } } 电影的集合是这样的: public class NorthwindContext : DbContext { public DbSet Movies { get; set; } } 我有一个像这样的MovieViewModel : public class MovieViewModel { private readonly Movie _movie; public MovieViewModel(Movie movie) { _movieModel […]

WPF从ViewModel打开一个新视图

这是我的第一个WPF-MVVM应用程序,这是我的结构: 我的app.xaml一个项目打开应用程序并覆盖OnStartup来解析MainWindow。 (由于参考,我这样做了); 我的意见的一个项目; 我的ViewModels的一个项目; 我的模型的一个项目。 我有以下问题:我在MainWindowView ,然后点击按钮显示另一个视图。 我怎么做从MainWindowViewModel打开另一个视图,而我的View Project有ViewModel Project参考,我不能用View Project引用ViewModel Project View Project ? 顺便说一下,我正在使用Unity进行dependency injection 。 那么,你能帮帮我吗?

从WPF自定义MarkupExtension访问“当前类”

我试图通过给我一个更好的方法在XAML中指定绑定来编写自定义MarkupExtension以使我的生活更轻松。 但是,我想知道是否有任何方法可以访问表示使用MarkupExtension的文件的对象。 换句话说,假设我有一个UserControl定义了我的程序的数据模型的特定再现。 这个控件有很多视觉材料,如网格,边框和总体布局。 如果我在这个UserControl的某个元素的特定属性上使用我的MarkupExtension ,我想访问UserControl的实例,而不知道它是什么类型(我计划使用reflection)。 这是可能吗?

Wpf Observable集合和DataGrid不更新更改

我在视图模型中有一个可观察的集合,它实现了Bindable Base,如下所示请查看MoveUp和MoveDown方法,它们绑定到视图中的两个按钮。 当按下向上按钮时,我希望数据网格中的选定行在数据库中基于序列列向上移动一步并向下移动一步。两种方法都可以完美地工作。 问题是只有在刷新整个视图时才会在数据网格中显示更改。 我的要求是单击按钮时我希望视图自动刷新。 我为这么长的代码道歉。 请帮忙!!!!。 我有一些cs代码也适用于viewmodel下面指定的向上和向下按钮。 只需要强调的代码中的指针是ObservableCollection JobEntities,MoveUp和MoveDown命令。 ViewModel.cs: public class JobConfigurationViewModel : BindableBase { public JobConfigurationLogic JobConfigurationLogic = new JobConfigurationLogic(new JobConfigurationResultsRepository()); public SrcDestConfigurationLogic SrcDestConfigurationLogic = new SrcDestConfigurationLogic(new SrcDestCofigurationRepository()); private string _enterprise; public string Enterprise { get { return _enterprise; } set { SetProperty(ref _enterprise, value); } } private int currentJobID; private int […]

将wpf密码框放入C#中的SecureString

我试图将wpf密码框中的数据转换为安全字符串。 怎么做的? 到目前为止我有什么: SecureString pass = new SecureString(); pass.AppendChar(pbox1.Password); 这当然不起作用,那么如何在不创建常规字符串的情况下获取密码数据呢?

如何将列标题绑定到ViewModel中的属性? (WPF MVVM)

我有窗口,其中DataContext绑定到ViewModel对象(示例为VM1)。 VM1有很多属性,其中一个是名为“MyTitle”的字符串。 我在’Window \ Grid \ DataGrid’中有一个DataGridTextColumn。 如何将DataGridTextColumn中的属性“Header”绑定到VM1 ViewModel中的属性“MyTitle”? 谢谢!

使用MVVM从WPF应用程序启动对话框/子窗口的标准方法

总而言之,我想知道使用MVVM模式从WPF启动[子]对话框/窗口的公认最佳方法/行业标准。 我遇到过以下文章: A. CodeProject – 使用MVVM模式时显示对话框 这种方法看起来不错,但对我来说太过分 这是一定程度的代码复制,我不相信这是正确的方法。 B. WPF MVVM和显示对话框 这简要地介绍了三个选项,其中包含各种链接,这些链接在解释方法或主题方面都相当/非常差。 有人可以提供一个行业标准方法/方法的解释,从使用MVVM的WPF应用程序启动对话框,最好是一些链接到进一步的阅读材料? 如果你能自己提供一个例子我当然会非常感激! 谢谢你的时间。

如何以编程方式将文本添加到位图图像? WPF

我正在使用Kinect传感器通过将video输入设置为位图源来显示图像上的video,如下所示。 但我的问题是如何将图像添加到图像/位图,例如分数计数器,我在下面添加了一张图片来展示我想要实现的目标。 void myKinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e) { using (ColorImageFrame colorFrame = e.OpenColorImageFrame()) { if (colorFrame == null) return; byte[] colorData = new byte[colorFrame.PixelDataLength]; colorFrame.CopyPixelDataTo(colorData); KinectVideo.Source = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null, colorData, colorFrame.Width * colorFrame.BytesPerPixel); } }