【问题标题】:Add Connecting Lines to WPF TreeView Programmatically (with no XAML)以编程方式将连接线添加到 WPF TreeView(没有 XAML)
【发布时间】:2018-12-12 10:36:27
【问题描述】:

我该怎么做:How to make WPF TreeView style as WinForms TreeView? 在代码中,没有 XAML?我需要这样做的原因是我得到的 TreeView 是在代码中定义的,所以根本没有 XAML。虽然我可以从 XAML 开始,但我不知道如何将 XAML 添加到没有它开始的东西中。我对 WPF 很陌生,但多年来一直在做 Winforms。 TreeView 仅由具有 Header 和 Tag 值的 TreeViewItem 对象的大层次结构组成。

【问题讨论】:

  • 你的树视图是“在代码中定义的”是什么意思?如果有大量的 UI 定制,那可能是不可能的。除非最初的开发者有死亡的愿望。我的猜测是你不确定它是如何组合在一起的?请编辑您的问题以显示您正在谈论的内容的示例。

标签: c# wpf treeview line


【解决方案1】:

如果您查看链接到的文章的答案,它会详细说明 TreeViewItem 样式定义如下:-

<Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">

当 x:Key 设置为目标类型(或完全省略)时,样式应成为该控件类型的应用程序默认值。

如果您将该文章的答案中详述的样式添加到您的 App.xaml 文件中,则整个应用程序中的所有 TreeViewItem都应该采用此默认样式。

如果这不起作用,您可以再尝试一件事。将样式的键更改为字符串,例如:-

<Style x:Key="WindowsTreeViewItemStyle" TargetType="{x:Type TreeViewItem}">

然后在您的代码中,遍历 TreeView 中的 TreeViewItems,并以编程方式将样式分配给每个:-

var style = (Style)Application.Current.FindResource("WindowsTreeViewItemStyle");

foreach (var treeViewItem in ...)
{
   treeviewitem.Style = style;
}

(使用该文章的 XAML 风险自负 - 完整源 zip 的链接已失效,他的 SO 答案中详细说明的内容可能不完整!)

【讨论】:

  • 我没有 App.xaml 文件。我拥有的是一个带有“钩子”的大型应用程序,我可以在其中指定程序集和类进行自定义。我已经能够使用纯代码对其进行自定义。我不知道(或理解)如何强制 XAML 和代码之间的连接,因为我实际上并不理解这种连接是如何“自然”发生的。在您的回答中,如果我无权访问 App.xaml,我不知道将 XAML 放在哪里。我拥有的是一组已编译的 .Net 程序集,其中一些是我自己的,由基线应用程序加载。
猜你喜欢
  • 2016-01-05
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2011-02-18
  • 2010-10-16
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多