C#中的可见性系统类型

时间:2010-11-22 18:26:19

标签: c# wpf

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


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


我最诚挚的问候和提前谢谢。

3 个答案:

答案 0 :(得分: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;
}

这有一个额外的好处,即当Visibility.OnlyWithXRayGoggles常量添加到.NET 6.0中的Visibility enumeration时,允许代码继续工作。

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

答案 1 :(得分:3)

不需要ToString() .. Visibility是一个枚举...

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

答案 2 :(得分:0)

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