问题标签 [freezable]
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.
wpf - 通过视觉状态更改控制模板会导致错误:“无法冻结此 Freezable”
我正在尝试根据屏幕大小在紧凑状态和展开状态之间切换控件。为此,我使用视觉状态来更改控件的模板:
这会导致InvalidOperationException
视觉状态发生变化:
这个 Freezable 不能被冻结。
是否有一些技巧可以按照我想要的方式进行这项工作,还是我需要采取不同的方法?
c# - 模板动画:我可以在时间轴中引用父属性吗?
给定以下自定义动画类:(来自此问题的答案之一):
给定以下用例:
根据我读过的内容,您无法绑定 Timelines From 和 To 值,因为Freezable
.
我阅读了一个可能的解决方法,但它使用了 Tag 属性,我认为这个用例可能超出了该解决方案的范围。
有什么方法可以让时间轴从我的组件中读取值吗?
c# - 如何冻结无法冻结的可冻结对象
在我的场景中,我想在后台任务中渲染它之前冻结一个不变的 BitmapCacheBrush。不幸的是,我收到错误“无法冻结此 Freezable”。是否有任何解决方法或hacky方式冻结也不是可冻结的对象?也许可以通过反射设置正确的属性来达到这个目标?提前谢谢你们。
编辑:(我的示例代码按要求)
c# - ListView 项目的自动更新
我是 WPF 绑定的新手。当 ItemSource 中的一项修改其自己的依赖属性时,列表视图是否会自动更新。我试图用 FreezableCollection 来做。
我的代码在下面给出,目的是在修改文本框时更新列表框。
主窗口.xaml
主窗口.cs
c# - telerik:PieSeries 绑定颜色 CanFreeze 警告
我目前正在使用 Telerik FW 进行 WPF 项目。
在运行时,我收到以下警告:
这是我的 xaml 代码
这是我的 ViewModel 的一部分
我认为一种解决方案是直接从 xaml 源创建颜色。但我想保持这个绑定能够以编程方式更改颜色。
对这个警告有任何想法吗?
c# - 带有 RelayCommand 的 Button 的错误消息“无法在不可变对象实例上为 '(0).(1)' 设置动画”
我使用通过两个属性管理的扩展按钮:IsLocked
和IsRequired
.
IsLocked
使用 a 停用按钮RelayCommand
:
IsRequired
用动画改变按钮的背景颜色。
这两个属性都是依赖的,并且定义如下:
我通过视图模型中的属性和关联视图中按钮属性的绑定来控制按钮:
当我在视图模型中设置为 True时,出现错误消息“无法在不可变对象实例上设置动画 '(0).(1)'” 。IsRequired
通常,IsLocked
是假的(通过属性的设置器),但我看到该属性IsEnabled
仍然是假的。所以,我试图改变IsEnabled
一个PropertyChangedCallback
链接到我的扩展按钮的依赖属性。但这是不可能的,它被冻结了。
如果我不再使用 的CanExecute
方法,RelayCommand
并且如果我将IsEnabled
扩展按钮的属性直接绑定到属性,那将有效IsLocked
。
有什么办法可以继续使用中继命令?
编辑:这是我的扩展按钮的样式
标准按钮的样式在另一个名为 Theme 的项目中定义:
javascript - 我想制作一个弹出窗口,在弹出窗口关闭之前不允许用户关闭浏览器
我想制作一个冻结浏览器的弹出窗口,直到弹出窗口关闭。但是我被困在一个点上,因为在关闭浏览器时,它要求用户留下或离开,但是当用户点击离开时,它会关闭。相反,我想要一个当用户单击离开选项时,它要么重新加载站点,要么什么都不做,同样在第二次做同样的事情时,Chrome 会发出警报,以防止我想要禁用的任何其他对话,或者它应该什么都不做。直到弹出窗口关闭。因此,最终用户应该无法通过浏览器的关闭按钮或返回或替换 URL 来关闭浏览器。它应该冻结,直到满足弹出窗口的要求。谢谢你,请帮忙。
xaml - Freezable 或 Binding 在 WPF 中是否优先?
因此,System.Windows.Media.Brushes 是可冻结的。这意味着如果您在 Brush 上调用 .Freeze() ,它将变得不可修改。这提高了性能。
在 WPF 中,您可以使用绑定作为在其他属性更改时更新属性的一种方式。
那么,当我创建 Frozen 画笔但绑定颜色时会发生什么?冻结优先还是绑定优先?
我试过了,当我改变窗口的前景时,矩形的颜色会更新。这是否意味着您可以修改画笔的颜色属性,尽管它被冻结了?还是颜色被冻结为绑定?这如何影响冻结对象的性能增益?
c# - 如果目标不是 FrameworkElement,如何在代码隐藏中设置 DynamicResource?
FrameworkElement
考虑这个 BindingProxy 类,它是 Freezable 的一个子类(因此当添加到 a的集合时它参与资源层次结构查找Resources
)......
你像这样将它添加到你的 XAML 中......
如您所见,Value
设置为 a DynamicResource
,因此它将自动跟踪对该键定义的资源的更改,如预期的那样。
现在,如果您想在代码隐藏中设置 aDynamicResource
而不是 XAML,如果目标对象是 a FrameworkElement
,您只需调用SetResourceReference
它,就像这样......
但是,SetResourceReference
仅适用于FrameworkElement
对象,而不适用于Freezable
s,因此您不能在BindingProxy
.
深入研究 的源代码FrameworkElement.SetResourceReference
,您会发现...
不幸ResourceReferenceExpression
的是,它的工作原理是内部的,所以我也无法做到这一点。
所以在代码隐藏中,我如何在基于DynamicResource
我Freezable
的对象上设置一个来反映我在 XAML 中可以做什么?
wpf - TaskbarItemInfo.Overlay 绑定到 DrawingImage 实例通过代码停止图像更新
我正在尝试使用具有动态内容的GeometryDrawing作为 TaskbarItemInfo.Overlay的源。下面代码中的图像是基于一个GeometryDrawing,它的Brush由代码不断更新。
1/ 出于测试目的,将 Source 绑定到原始图像 Source 的图像副本按预期工作,两个图像在屏幕上更新。
2/ 添加到 XAML:
这是与任务栏图标覆盖具有相同图像的相同绑定。这会停止所有内容的更新。
我正在学习 WPF,但不明白为什么会发生这种情况。
XAML:
C#:
您能否指出正确的方向来理解和解决问题?
编辑:我发现了相同代码的另一个问题,这可能是链接的。
当TaskbarItemInfo.Overlay
绑定到图像时,窗口大小减小到图像大小本身减小的程度,然后文本出现在图像中,并且还覆盖在任务栏图标上,即它可以正常工作。然而,经过几次尺寸调整后,会出现异常:
System.InvalidOperationException'发生在 mscorlib.dll 集合被修改;枚举操作可能无法执行
我认为这是从不同线程访问集合的问题,但这并不能真正帮助我理解这个问题。