在 XAML 中多次从资源中获取元素
我在 XAML UserControl 资源中有一些 Path
类型的元素,当我尝试多次使用某个元素(例如在两个不同的 StackPanel
中)时,我收到 InvalidOperationException。
有什么问题吗?为什么资源元素在我的控件上被标识为真实组件?
I have some elements of type Path
in XAML UserControl resources, when I try to use some element more than once (for example in two different StackPanel
s) I get an InvalidOperationException.
What's the problem? Why resource element identifies as real component on my control?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只有冻结的
Freezable
对象才能在同一可视化树中多次使用。Path
对象不是Freezable
对象,而是FrameworkElement
对象,因此会出现错误。您可以尝试在Path
资源上使用x:Shared="False"
属性,以便在每次访问该资源时创建一个新副本,以防止出现异常。Only
Freezable
objects that are frozen can be used more than once in the same visual tree.Path
objects are notFreezable
objects butFrameworkElement
objects, hence the error. You can try using thex:Shared="False"
attribute on thePath
resource to create a new copy each time the resource is accessed to prevent the exception.