C# 设置矩形的不透明度

C# 设置矩形的不透明度,c#,wpf,C#,Wpf,我在单击某个按钮时触发了一个事件 private void set_Opacity(object sender, RoutedEventArgs e) { this.Opacity = 0; } 但是当点击按钮时没有效果。我做错了什么? 谢谢 编辑: 我将介绍一些我正在尝试做的事情的背景: 我已经创建了一个自定义按钮,它可以通过淡出动画最小化我的窗口,下面是它的代码: private void minimize_Window(object sender, Ev

我在单击某个按钮时触发了一个事件

private void set_Opacity(object sender, RoutedEventArgs e)
    {
        this.Opacity = 0;
    }
但是当点击按钮时没有效果。我做错了什么? 谢谢

编辑: 我将介绍一些我正在尝试做的事情的背景:

我已经创建了一个自定义按钮,它可以通过淡出动画最小化我的窗口,下面是它的代码:

 private void minimize_Window(object sender, EventArgs e)
    {
        var anim = new DoubleAnimation(0, (Duration)TimeSpan.FromSeconds(1));
        anim.Completed += (s, _) => this.Minimize();
        this.BeginAnimation(UIElement.OpacityProperty, anim);



    }
    private void Minimize()
    {
        WindowState = WindowState.Minimized;
    }
它工作得非常好,但问题是当我试图从任务栏中检索程序时,它什么也做不了(当我在最小化后从任务栏单击程序时,我无法看到它)。我从中了解到,我的程序的不透明度被设置为0,而它被最小化(因为动画)。 因此,我使用激活的事件调用该方法:

private void set_Opacity(object sender, EventArgs e)
    {
        rectangle2.Opacity = 1;
        WindowState = WindowState.Normal;
    }
但仍然是同样的问题。希望你能帮忙


非常感谢。

这应该会有一些效果(假设在WPF应用程序主窗口上调用它,则会使整个窗口变黑)


听起来好像事件处理程序没有正确连接。尝试在“不透明度”设置行上设置断点,或右键单击“设置不透明度”函数名称并选择“查找所有引用”,您应该会看到在windowname.g.cs文件中创建了一个事件处理程序。

这应该会产生一些效果(假设这是在WPF应用程序主窗口上调用的,它将使整个窗口变黑)


似乎事件处理程序没有正确连接。请尝试在“不透明度”设置行上设置断点,或右键单击“设置不透明度”函数名并选择“查找所有引用”,您应该会看到在windowname.g.cs文件中创建了一个事件处理程序。

在大多数情况下,问题似乎是,
将成为一个
窗口
。不过,我的假设是,您没有试图将整个窗口设置为不可见,而是设置为一个矩形。您需要使用
x:name
属性为矩形命名。以下是一个示例:


然后,在按钮中单击:

private void set_Opacity(object sender, RoutedEventArgs e)
{
    MyRectangle.Opacity = 0;
}
如果确实要设置整个
窗口的透明度:

除非在XAML中将
AllowTransparency
指定为true,将
WindowStyle
指定为None,否则无法设置整个窗口的不透明度:


请注意正在设置的属性

编辑

当我的程序从任务栏激活时,我需要触发一个事件。你知道我可以使用什么事件吗

使用
窗口。激活
事件。从XAML:


在你的简历中:


问题似乎是,在大多数情况下,
将成为一个
窗口
。不过,我的假设是,您并不是试图将整个窗口设置为不可见,而是一个矩形。您需要使用
x:name
属性为矩形命名。以下是一个示例:


然后,在按钮中单击:

private void set_Opacity(object sender, RoutedEventArgs e)
{
    MyRectangle.Opacity = 0;
}
如果确实要设置整个
窗口的透明度:

除非在XAML中将
AllowTransparency
指定为true,将
WindowStyle
指定为None,否则无法设置整个窗口的不透明度:


请注意正在设置的属性

编辑

当我的程序从任务栏激活时,我需要触发一个事件。你知道我可以使用什么事件吗

使用
窗口。激活
事件。从XAML:


在你的简历中:


我刚刚检查了它,事件正在被调用。我刚刚检查了它,事件正在被调用。在事件处理程序的上下文中“this”是什么?例如,这个事件处理程序是在哪里定义的,不透明度是在哪个元素上设置的?在事件处理程序的上下文中“this”是什么?例如,这个事件处理程序是在哪里定义的ich元素是否设置了不透明度?很抱歉,我刚刚不得不将“this”更改为“rectangle2”。我设置的是按钮的不透明度,而不是矩形>请查看我编辑的帖子^希望您能够提供帮助:)对不起,我刚刚不得不将“this”更改为“rectangle2”。。我设置的是按钮的不透明度,而不是矩形>请查看我编辑的帖子^