gpt4 book ai didi

c# - IF 语句检查控件是否有标记值

转载 作者:行者123 更新时间:2023-12-04 15:44:58 24 4
gpt4 key购买 nike

我正在尝试遍历一些控件,然后根据控件的位置、宽度和高度制作一个矩形并将其添加到列表中。

C#

List<Rectangle> MaskBlocks = new List<Rectangle>();
foreach (StackPanel gr in FindVisualChildren<StackPanel>(Container))
if (gr.Tag.ToString() == "Blur")
{
System.Windows.Point tmp = gr.TransformToAncestor(this).Transform(new System.Windows.Point(0, 0));
MaskBlocks.Add(new System.Drawing.Rectangle(new System.Drawing.Point((int)tmp.X,(int)tmp.Y), new System.Drawing.Size((int)gr.ActualWidth, (int)gr.ActualHeight)));
}

当我运行代码时,IF 语句中出现错误:

An unhandled exception of type 'System.NullReferenceException' occurred in BlurEffectTest.exe

Additional information: Object reference not set to an instance of an object.

有人可以阐明这个问题以便我解决吗?

最佳答案

错误说你的 gr.Tag 是空的,所以它失败了。先检查是否为null

List<Rectangle> MaskBlocks = new List<Rectangle>();
foreach (StackPanel gr in FindVisualChildren<StackPanel>(Container))
if (gr.Tag!= null && gr.Tag.ToString() == "Blur")
{
System.Windows.Point tmp = gr.TransformToAncestor(this).Transform(new System.Windows.Point(0, 0));
MaskBlocks.Add(new System.Drawing.Rectangle(new System.Drawing.Point((int)tmp.X,(int)tmp.Y), new System.Drawing.Size((int)gr.ActualWidth, (int)gr.ActualHeight)));
}

关于c# - IF 语句检查控件是否有标记值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325016/

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