gpt4 book ai didi

.net - 如何使依赖属性更改的视觉无效?

转载 作者:行者123 更新时间:2023-12-01 11:45:31 27 4
gpt4 key购买 nike

我有自定义控件,重写了 OnRender 方法。我想使对任何依赖属性更改事件的控制无效。当父类型的属性发生变化时更新也很好。有什么方法可以使用内置功能做到这一点?

编辑:

我发现我可以将“影响渲染”用于依赖属性,并在 OnLayoutUpdated 上检查附加信息或私有(private)属性(如果有)。

FrameworkPropertyMetadata.AffectsRender

和:

private void OnLayoutUpdated(object sender, EventArgs e)
{
int result = (CornerRadius != null ? CornerRadius.GetHashCode() : 0);
result = (result * PrimeHashNumber) ^ (IsSelected.GetHashCode());
result = (result * PrimeHashNumber) ^ (IsReadCornerRadiusFromConfig.GetHashCode());
result = (result * PrimeHashNumber) ^ (IsReadBorderThicknessFromConfig.GetHashCode());
result = (result * PrimeHashNumber) ^ (SelectedColor!=null?SelectedColor.GetHashCode():0);
result = (result * PrimeHashNumber) ^ (Background != null ? Background.GetHashCode() : 0);
result = (result * PrimeHashNumber) ^ (BorderBrush != null ? BorderBrush.GetHashCode() : 0);

if (lastHash != result)
{
this.InvalidateVisual();
lastHash = result;
}
}

最佳答案

恕我直言,最好的方法是在您使用的 DependencyProperties 上指定它们会影响渲染。

参见 FrameworkPropertyMetadata.AffectsRender:http://msdn.microsoft.com/en-us/library/system.windows.frameworkpropertymetadata.aspx

关于.net - 如何使依赖属性更改的视觉无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685813/

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