问题标签 [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 投票
2 回答
4718 浏览

c# - WPF 框架元素

我是 WPF 编程模型的新手。我有几个疑问:

  1. XAML(在 XBAP 应用程序中)中的 Page 标记是否属于 类型FrameworkElement

  2. 如果我有一个子元素,可以说页面内的框架。我在另一个程序集中的函数中传递了该框架元素。现在我尝试从 Frame 控件的 Parent 属性导航回 Page 我无法获得对 Page 的引用?有什么想法吗?


我在另一个程序集中使用的函数来获取子控件的父页面


</DataTrigger> </DataTemplate.Triggers>-->

0 投票
1 回答
1625 浏览

c# - 在动画完成时移除 FrameworkElements

我一直在通过 Sells/Griffiths 的“Programming WPF”自学 WPF,我发现它是一个很好的资源,但我正在尝试采用他们向我介绍的一些概念并更进一步,我遇到了一个关于如何将各个部分组合在一起以完成我想要做的事情的概念障碍。

在本练习中,我尝试创建自终止动画;FrameworkElement由事件创建的 s,执行动画,然后删除自己。我在弄清楚如何FrameworkElement从 animation.Completed 事件中回调父级时遇到问题。

我最初只是使用DoubleAnimation未包含且不属于Storyboard. 从那以后,我添加了Storyboard, 并制作了Storyboard和 rectangle 资源,以便可以轻松地重用它们。

这是我到目前为止所拥有的:
.xaml:

。CS:

这有效,但不是我想要的方式。由于画布是空的,并且所有动画的长度都相同,因此当动画完成时,它将始终是在画布的第一个子节点上调用的动画。

但是,我想实现花费随机时间的动画,这意味着动画不会总是以相同的顺序开始和结束。不知何故,在 SB_Completed 事件中,我想访问它被调用的控件,但我似乎无法找到它的路径。

有没有办法从调用 SB_Completed 事件的 Media.Animation.ClockGroup 到调用动画的控件?

0 投票
2 回答
596 浏览

silverlight - Silverlight:在渲染之前,是否有在 FrameworkElement 上触发的事件?

在我们的 Silverlight 2 项目中,我们创建了一个附加属性来执行对各种用户控件的文本属性的即时翻译。为此,我们在FrameworkElement设置属性时挂钩了 Loaded 事件。当事件触发时,我们获取现有的文本属性值并对其执行一些简单的字符串替换,然后用翻译后的文本替换属性值。但是,这会导致控件使用未翻译的文本呈现,然后文本很快被翻译版本替换。

是否有一个我们可以挂钩的替代事件会在控件呈现之前触发?

0 投票
1 回答
805 浏览

wpf - 取决于 DataContext 的条件 FrameworkElements

在我的 MV-VM 应用程序中,我必须显示用户的头像。图像在 ViewModel 对象的 ImageSource 类型的属性中提供。这就是我目前所拥有的:

但是,有些用户可能没有配置头像,所以 UserAvatar 是null. 在这种情况下,我想显示一个默认头像。除了视图之外没有人必须知道默认图像,因为它只是表示的问题。

那么如何使用给定的 ImageSource 显示图像,或者如果 ImageSource 是null. 我是否必须将某种 DataTemplate 与 DataTriggers 一起使用?从现在开始我只将它们用于 ItemsControls,所以我不知道。

0 投票
1 回答
1955 浏览

wpf - 从情节提要中获取框架元素

我有一个 Storyboard 对象实例的引用,并且想要获取它附加到/动画的框架元素。我一直无法想出任何方法来做到这一点。

例如,在下面的 XAML 中,我可以从对情节提要的引用中获取标签或网格

对于那些想知道为什么我需要这样做的人,这是因为我正在尝试创建一个派生的 Storyboard 类或附加的行为,这将允许我在 DataContext 上指定一个方法名称,以便在 Storyboard 完成事件触发时调用。这将允许我做纯粹的 MVVM,而不是需要一些代码来调用我的视图模型。

0 投票
1 回答
10890 浏览

silverlight - 如何以编程方式访问 Silverlight FrameworkElement 的 ToolTipService?

我们有一种语言机制,在加载时通​​过我们的 XAML 页面递归,检查每个元素的 Tag 属性并使用其值检索字符串资源以应用于该元素。它目前不支持工具提示,我们必须在每个页面上都有特定的代码才能将语言资源应用于它们。我正在尝试将此功能添加到我们的递归机制中。

所以我在树中递归,对于每个元素 a FrameworkElement,我想知道它是否有 ToolTipService ,如果有, ToolTipService 是否有 ToolTip 元素。如果是,我想检索 Tag 属性(如果有),并使用我使用标签查找的值设置 Content 属性。我的问题是我不知道如何确定是否有工具提示并访问它。

这是一个显示元素的示例,在本例中为图像。如果我在树中递归并且当前元素是图像,我如何到达工具提示?

0 投票
1 回答
3670 浏览

wpf - 将图像添加到框架元素工厂 WPF 时出现问题

我有一个使用列表视图树进行导航的 WPF 应用程序。在这棵树中,我有一个对象类型列表,因此类似于:

右侧每个对象名称旁边是一个编辑图标。我想做的是根据对象类型在对象名称的左侧添加一个图标。对象类型可以是单选按钮、组合框等。我的对象类型来自数据库,这很好。我的问题是我动态创建了这棵树。所以我使用了 FrameworkElementFactory,这样我就可以在每个对象名称旁边添加一个堆栈面板,然后在每个对象名称旁边放置一个编辑按钮。希望这是有道理的。

到目前为止,我尝试的是图像部分:

当我尝试使用位图方法时,我收到一个错误,我无法创建 Window1 的实例,这是我的 WPF 应用程序。我要做的就是确定对象类型是什么,然后根据它动态设置图标图像。我只是没有想法,有没有其他方法可以使用这种方法来实现这一点?


只是一个更新,我终于克服了应用程序崩溃,更新后的代码是这样的:

但是,该图标现在不显示。有谁知道为什么?

0 投票
1 回答
1398 浏览

wpf - 将 DataTemplate 应用于从 FrameworkElement 派生的类型

我的应用程序中有一个自定义“页面”列表。每个页面代表一个不同的 UI 视图。它们有一些简单的属性,如字符串标题和图标,但它们也有许多复杂的属性,包括插入主工具栏的控件、主要内容区域、自定义状态栏面板等。页面类型源自FrameworkElement以便数据绑定在每个页面的 XAML 中正常工作。到目前为止,我所描述的一切都很好

当我试图快速抛出所有页面的列表时,问题就来了。我有一个ItemsControl绑定到活动页面列表的一个,一个DataTemplate分配给一个ItemTemplate仅由绑定到页面Title属性的标签组成的一个(如前所述,它只是一个普通字符串)。但是,当我运行它时,列表中没有显示任何内容,并且我在错误输出中得到了这个:

System.Windows.Data 错误:25:ItemTemplate 和 ItemTemplateSelector 对项目无效。;类型='欢迎页面'

如果我将基本类型更改为除FrameworkElement模板工作之外的任何内容,但每个页面中的数据绑定会严重崩溃(通过绑定到项目ElementName失败,尽管所涉及的两个控件都是 common 的子级FrameworkElement,这是在页面的 XAML 中定义的)。

任何人都知道获取 DataTemplate 以应用于 FrameworkElement 派生类型或获取数据绑定以在以非 FrameworkElement 为根的 XAML 文件中工作的方法吗?

0 投票
3 回答
4452 浏览

wpf - 如何以编程方式获取 WPF FrameworkElement 的当前视觉状态?

如何以编程方式获取 WPF FrameworkElement 的当前视觉状态?我所说的状态是指“正常”、“鼠标悬停”、“禁用”等状态。

编辑:基本上,我正在使用 更改按钮的视觉状态VisualStateManager.GoToState(e, "MouseOver", true);,并且我想知道在完成后将其更改回什么状态。

0 投票
1 回答
405 浏览

wpf - 在 WPF 中,如何获得 FrameworkElement 的真实大小?

在 WPF 中,如何获取 FrameworkElement 的真实大小,包括阴影等效果添加的额外大小?

我有一个带有阴影的按钮。我以编程方式将其输出到 PNG 文件。我使用ActualWidthandActualHeight来获取按钮的大小,但是这是没有阴影的按钮的大小。

结果是带有阴影的按钮被挤压成没有阴影的按钮的大小。

任何人都知道如何弄清楚带有阴影的按钮的大小是多少?