gpt4 book ai didi

C# - 组件引用 - Dispacher.CheckAccess()

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:39 24 4
gpt4 key购买 nike

我有一个问题。我需要使用传递一个参数(对控件的引用)的函数:

public void recalculateFontSize(ref TextBlock component)
{
...
}

我想使用它但不知道如何将 Dispatcher 与“ref”关键字连接起来

    private void textResizer(ref TextBlock component)
{
if (component.Dispatcher.CheckAccess())
{
textUtils.recalculateFontSize(ref component);
}
else
{
component.Dispatcher.Invoke(new Action<TextBlock>(textResizer), component);
}
}

如何修改component.Dispatcher.Invoke ???

最佳答案

传递 UI 控件几乎总是我会说的坏主意。

为什么不稍微调整一下逻辑,以便您可以在 View 中使用绑定(bind)(我认为您正在使用 WPF,因为涉及 Dispatcher)

这样您的 ViewModel 将公开 RecalculateFontSize 命令,然后您的 View 将绑定(bind)到 ViewModel 可以根据每个请求更改的字体大小属性。

这样,在您的命令中,您可以通过 Dispatcher.CheckAccess 检查访问权限,并在 UI 线程中调用 FontSize 的重新计算。

关于C# - 组件引用 - Dispacher.CheckAccess(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com