【问题标题】:TransparencyKey Property on Forms表单上的 TransparencyKey 属性
【发布时间】:2011-09-01 23:58:59
【问题描述】:

我想在 Windows 窗体应用程序中使用 Visual C# 切换我的窗体背景透明度。

我用过

BackColor = Color.White;
TransparencyKey = Color.White;

现在我想切换回“不透明”。我怎样才能做到这一点?只是切换 BackColor 会使表单上的元素看起来很奇怪,感觉很丑。 我想有办法重置属性。

【问题讨论】:

  • “丑”是什么意思?不要将其切换回 Color.Fuchsia。并且不要使用白色作为透明度键。太常见了。使用升级的颜色。

标签: c# forms transparency


【解决方案1】:

这是原始值:

this.TransparencyKey = Color.Empty;

你可以设置这个,然后什么都不会是透明的。

【讨论】:

  • @vgoff:原始值为:Color.Empty
  • 嗯...那为什么要设置呢?我的意思是,如果它是原始设置,那么您不必再次设置它。只是好奇。我猜你是说重置它,而不是设置它?
  • 是的,这是某种重置它。 (他说:)“我想切换回‘不透明’。”
【解决方案2】:

如何将 BackColor 和 TransparencyKey 的先前值存储在局部变量中,并在您想恢复为不透明时恢复它们?例如:

private Color _oldBG;
private Color _oldTPKey;

private void MakeTransparent() {
    _oldBG = BackColor;
    _oldTPKey = TransparencyKey;
    BackColor = Color.White;
    TransparencyKey = Color.White;
}

private void MakeNonTransparent() {
    BackColor = _oldBG;
    TransparencyKey = _oldTPKey;
}

【讨论】:

    【解决方案3】:

    十一年后,我遇到了这个问题。所以对于任何其他读者:我错误地设置了透明度键。另一个论坛的帖子说您可以在设计时右键单击它,然后重置它,但重置被禁用(灰显)。所以我只是简单地退格了设置的“白色”(设计中)。 (我相信它设置为 'Color.Empty' 就像这里的一个人指出的那样。)问题解决了。我应该说我使用的是一个古老的 .net 版本。希望这也适用于更新的版本。

    【讨论】:

      猜你喜欢
      • 2020-06-26
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多