Tag: wpf

WPF:如何循环窗口中的所有控件?

如何在WPF窗口中循环所有控件?

停止TabControl重新创建其子项

我有一个视图模型的IList ,它绑定到TabControl 。 此IList不会在TabControl的生命周期内更改。 每个viewmodel都有一个DataTemplate ,它在ResourceDictionary指定。 DataTemplate中指定的每个视图都是资源密集型的,足以创建我只想创建每个视图一次,但是当我切换选项卡时,会调用相关视图的构造函数。 根据我的阅读,这是TabControl的预期行为,但我不清楚调用构造函数的机制是什么。 我已经看过一个使用UserControl的类似问题,但是那里提供的解决方案需要我绑定到不受欢迎的视图。

调用线程必须是STA,因为许多UI组件在WPF中需要这个

我的情景: void Installer1_AfterInstall(object sender, InstallEventArgs e) { try { MainWindow ObjMain = new MainWindow(); ObjMain.Show(); } catch (Exception ex) { Log.Write(ex); } } 我收到错误“调用线程必须是STA,因为许多UI组件需要这个” 我所做的?

在WPF应用程序中执行后台任务

例 private void Start(object sender, RoutedEventArgs e) { int progress = 0; for (;;) { System.Threading.Thread.Sleep(1); progress++; Logger.Info(progress); } } 如果我想要Start(),推荐的方法是什么(TAP或TPL或BackgroundWorker或Dispatcher或其他) 不要阻止ui线程 可以提供进度报告 可以取消 支持multithreading和多核

在我的WPF应用程序中,我在图像中加载的PNG徽标在设计时显示,但在运行时不显示

这可能是我想念的简单事情。 我有一个png文件,我想在我的WPF窗口中用作* Image *控件的源代码。 我通过项目属性>资源>添加现有文件添加了这个PNG文件,并首先作为链接文件(然后当它不起作用时嵌入)。然后我将XAML文件中的图像控件的* Source *添加到此。 没有代码,简单点击。 令人烦恼的问题是,当我设计WPF窗口时,图像显示。 当我运行它时,它不会。 什么也没出现。 更新:下面添加了XAML代码 我错过了什么? 谢谢

在TextBox中制作特定的文本Boldefaced

嗨我目前有一个texbox,当用户按下不同的按钮时会向用户输出信息。 我想知道是否有办法让我的一些文字加粗,其余的不是。 我尝试过以下方法: textBox1.FontWeight = FontWeights.UltraBold; textBox1.Text. = (“Your Name: ” ); TextBox1.FontWeight = FontWeights.Regular; textBox1.Text += (nameVar); 唯一的问题是,使用这种方式会使一切都变得大胆或没有。 有没有办法做到这一点? 我在C#中使用WPF项目 任何意见或建议表示赞赏。 谢谢! 编辑:所以现在我想尝试你所有建议的RichText框,但我似乎无法得到任何东西出现在其中: // Create a simple FlowDocument to serve as the content input for the construtor. FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run(“Simple FlowDocument”))); // After this constructor is called, the new RichTextBox […]

WPF – 如何使用绑定创建菜单和子菜单

我正在尝试使用绑定创建动态菜单。 我的viewmodel我有一个包含标题和命令的对象列表。 但是,它不起作用。 我认为问题出在数据模板中。 请参阅下面的代码: 结果仅显示第一个菜单。 子菜单没有显示,但它们在那里,因为有子项的菜单,箭头在菜单标题后打印。 任何人都可以在绑定上发现错误吗? 还是有什么建议吗? 仅供参考,MenuItems是一个MenuItemViewModel对象列表,它有一个标题和一个名为MenuItems的MenuItemViewModel对象(子菜单)列表。

从剪贴板复制到剪贴板会丢失图像透明度

我一直在尝试将透明的PNG图像复制到剪贴板并保留其透明度,以将其粘贴到支持它的特定程序中。 我已经尝试了很多解决方案,但背景总是以这种或那种方式变灰。 所以我尝试使用Chrome复制相同的图像并将其粘贴到程序中并且它有效。 它保持了透明度。 然后我尝试从剪贴板中获取我使用Chrome复制的图像并再次设置图像,期望透明度仍然存在 – 但是,即使我刚从剪贴板中取出图像并设置它,也不会保留透明度再次。 var img = Clipboard.GetImage(); // copied using Chrome and transparency is preserved Clipboard.SetImage(img); // transparency lost 即使我使用System.Windows.Forms.Clipboard或尝试获取并设置DataObject而不是Image,也会出现同样的问题。

在WPF中使用MVVM将n个矩形添加到canvas

我想在我的mvvm应用程序的主窗口中添加一组矩形。 在我的viewModel中,我有一个对象集合,我用转换器转换为System.Windows.Shapes.Rectangle类(代码如下): 视图模型: RecognizedValueViewModel { public ObservableCollection BarcodeElements { get { return _BarcodeElements; } set { _BarcodeElements = value; } } public RecognizedValueViewModel() { BarcodeElements = InitializeBarcodeElements(); } } 转换器: public BarcodeElementToRectangleConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Rectangle barcodeRectangle = GetRectangleFromBarcodeElement(value as BarcodeElement); return barcodeRectangle; } […]

打开默认邮件客户端以及附件

嗨,我正在使用WPF应用程序(使用c#)。 我需要有一个function,用户可以通过电子邮件将文件(音频文件)作为附件发送。 我尝试使用Microsoft.Office.Interop.Outlook.Application命名空间但它打开outlook并且如果未在客户端的计算机上安装outlook,则无法工作。 我尝试使用System.Net.Mail命名空间的SmtpClient()和MailMessage()类,但它没有打开电子邮件客户端。 它通过预定义的服务器发送邮件(可能是一个问题,因为我不知道我的客户端的默认电子邮件域是什么。这个链接有我需要的所有东西,它的工作正常。 但是在那里他们使用了DllImport属性,并且使用这种方法可能会产生许多问题(根据我的理解)。 我不知道托管和非托管代码,所以我无法理解问题所在。 可以按照上面的链接中的示例进行操作。 如果不是为什么? 你能说出或提供如何处理我的问题的链接