问题标签 [frameworkelement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
944 浏览

c# - 不呈现 FrameworkElement 的子项

我创建了一个自定义 FrameworkElement 并通过 AddLogicalChild 方法添加了多个子项,它们也是 FrameworkElements。

但是没有渲染孩子,甚至没有调用 OnRender 方法。就像 MeasureOverride 和 ArrangeOverride 方法一样。

我做了一些研究,但我陷入了困境,也许有人可以帮助我。

这是我制作的两个类。在 ChildElement 类中,我在每个方法中都设置了一个断点。但是,如果调用了方法,则除了 ctor 之外没有。

0 投票
1 回答
195 浏览

c# - 如何在WPF中获取richtextbox最后一个词是否为BringIntoView(显示)?

我在 wpf 工作,我有一个包含一些内容的 Richtextbox。如果内容超出了richtextbox,我想隐藏底部边框。如果richtextbox 中的内容我想显示底部边框。现在我正在使用下面的代码来将超出的内容带到富文本框中查看。

但是我想显示底部边框,一旦该richtextbox中显示最后一个单词。如何实现这一点?

注意:我已经知道如何动态显示底部边框。但我想知道最后一个单词是否显示在 Richtextbox 中?

问候阿琼

0 投票
1 回答
294 浏览

wpf - 如何检测裁剪/裁剪的 WPF FrameworkElement/Canvas 是否有任何内容?

我有一个大画布,我正在尝试对其进行分页打印。我可以将画布分成页面大小的部分,可以裁剪(剪辑)内容,并将每个页面传递给打印方法。不过,我想跳过空白页,并且需要一些方法来检测内容是否为空白。

目前,我通过使用原始 Canvas 的 VisualBrush 将 Canvas 转换为 Rectangle 来“展平” Canvas:

然后我剪辑生成的 Rectangle 以将其裁剪为大小:

我想也许我可以使用 XamlWriter 来分析生成的剪辑 Canvas 并检测是否存在任何内容,但不知道该怎么做。在表示目标页面大小的原始画布上绘制一个矩形也是合理的,并检查是否有任何其他元素出现在其边界/碰撞内。我不确定。获得返回值或 null 之类的就可以了,我只需要通过整个路径找出我的裁剪部分没有内容。

0 投票
1 回答
519 浏览

c# - 属性更改时绑定到控件不会更新

我使用直接绑定到控件的Binding+IValueConverter来生成使用控件上的多个属性计算的结果。每当控件上的属性发生变化时,有什么方法可以调用转换器?

我知道可以使用 IMultiValueConverter 绑定到我想要的属性,但这会占用代码中的大量空间并中断流程。

示例代码:

主窗口.xaml

主窗口.xaml.cs

0 投票
1 回答
39 浏览

c# - 添加的拇指未呈现

我想实现自己的从 FrameworkElement 派生的控件,但未呈现添加的子元素。

我不知道为什么。

0 投票
2 回答
403 浏览

c# - 具有动态编程的 FrameworkElement 和 FrameworkContentElement 的通用接口

我试着简短地说:FrameworkElement 和 FrameworkContentElement 共享许多相同的 API,但没有通用接口。只有 DependencyObject 作为基类。

我遇到过IFrameworkElement 的这个实现,它手动添加了一个接口和两个包装类。现在这段代码是在 .NET 3.5 中实现的,作者评论说在 .NET 4 中使用动态编程会容易得多:

实际代码非常简单,但每个元素大约有 624 行。(这将是动态语言中更简单的单行实现 - C# 4.0 即将推出 :))。

我会很好奇它的实现会是什么样子。我认为它可以归结为 的动态实现IFrameworkElement,并阅读ExpandoObjectDynamicObject查看我是否可以实现自己,但我有点难过。我想可以编写一个 DynamicObject 的自定义实现——但这不是一个单行。这真的可以通过动态编程变得那么容易吗?我什至不需要成为一个班轮,我可以用 10 甚至 100 行而不是原来的 1250。

我在想这样的事情:

0 投票
0 回答
78 浏览

c# - 具有 frameworkElements 集合的复制对象 -> 仅显示复制的元素

我有一个“板”,我在其中展示框架元素。问题是,如果我克隆“BlockContainer”对象并创建我的 frameworkElements (System.Windows.Controls.Image) 的新实例,那么我会看到多个对象。

但是,如果我只是创建一个“BlockContainer”的新实例,然后将带有 FrameworkElements 的列表从 ReferenceList 设置为新对象,则只会显示新项目。

但我需要有一个参考。如果图像发生变化,我只想更新参考列表。

(所有代码都被修剪)

基类

板件

容器

BlockContainer(绑定到 Visu)

参考块

克隆块(我们看到所有对象)

克隆

带有引用的新实例(我们只看到新对象)

副本1 副本2

0 投票
1 回答
118 浏览

wpf - 从 XAML 调用 FrameworkElement 方法时不绘制网格 - 但从 Window_loaded 调用

我正在 wpf 中重建我的 vb6 应用程序,该应用程序自 2011 年以来运行良好。我的应用程序处理 11 个文档。在 vb6 中,我在 MDI 中使用了 11 种形式。

在 wpf 中,我使用了一个名为 Hold 的 Canvas。此画布包含我称为 Doc 的 FrameworkElement 的 11 个实例。

Doc 具有为我称为 Cell 的类绘制形状和文本的方法。为了在Doc中放置单元格,需要Doc绘制一个网格。为此,如果 true Doc 绘制网格,我有一个布尔字段 (bool _showGrid;)。

我的问题是 Doc FrameworkElement 从 xaml 调用时不绘制网格。但是从 Window_Loaded 可以。

这是Doc FrameworkElement的一部分:

这是 xaml,其中在 showGrid 中创建 Doc 的documentsReceipt 实例设置为 true 女巫不起作用:

这是我省略时的应用documentReceipt=true程序Window_Loaded

没有网格的窗口

这是我 使用网格启用 showGrid Window时的输出

0 投票
3 回答
609 浏览

c# - ScrollView 在动态创建的元素内不起作用

我需要动态地创建一些 FrameworkElements。我有一个 StackPanel,我在其中创建了一个 Pivot,一个 PivotItem,一个带有 StackPanel 和按钮的 ScrollViewer,如下所示:

这是 C# XAML 代码:

如果我尝试在 XAML 中创建所有元素,ScrollViewer 会按预期工作,但是当页面中发生某些事件时,我需要动态创建它们。

在调试中检查页面,PivotItem 有“ActualHeight == 0”,所以我认为它里面的 ScrollViewer 不能正常工作,但我不知道如何修复它,也许可以对 ScrollViewer 说“给自己充电”使滚动工作。

0 投票
1 回答
50 浏览

c# - 为什么我无法访问 frameworkElement 的 SelectedItem?

我将一个 FrameworkElement 对象发送到我的 ViewModel 中的一个方法,该方法负责在 TreeView 中创建一个新项目。

当我调试时,我可以看到 frameworkElement 的 SelectedItem 中有什么,但是当我想掌握它时,例如

那我不能。Intellisense 没有给我这个选项。为什么不?然后当然,我如何获得 SelectedItem 的 ID?