C#中的可见性系统类型

scr*_*ler 1 c# wpf

我是C#编程语言的新手.我的问题是编写一个使用"item.Visibility"属性并检查可见性的方法.它的伪代码:


private void MenuItem_Check(MenuItem item){
     if ((item.Visibility.ToString()=="Hidden") ||(item.Visibility.ToString()=="Collapsed") )
     item.Visibility=Visibility.Visible;
}


我最诚挚的问候和提前感谢.

Sho*_*og9 8

你真的不关心该项目是否被隐藏或折叠-你在验证它,你之前不是已经可见只是兴趣使其可见.所以检查一下:

private void MenuItem_Check(MenuItem item){
     // if item is not already visible, make it visible
     if (item.Visibility != Visibility.Visible)
        item.Visibility=Visibility.Visible;
}
Run Code Online (Sandbox Code Playgroud)

这具有额外的优点,即当将Visibility.OnlyWithXRayGoggles常量添加到.NET 6.0中的Visibility枚举时,允许代码继续工作.

(正如其他答案已经指出的那样,没有充分的理由将值转换为字符串 - 您可以直接与枚举常量本身进行比较)