1

いくつかのボタンがクリックされたときにイベントが発生します

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に設定されているということです。そこで、そのメソッドを呼び出すActivatedイベントを使用しました。

private void set_Opacity(object sender, EventArgs e)
    {
        rectangle2.Opacity = 1;
        WindowState = WindowState.Normal;
    }

それでも、同じ問題。お役に立てば幸いです。

どうもありがとうございます。

4

2 に答える 2

4

問題は、ほとんどの場合、thisWindow. ただし、ウィンドウ全体を非表示に設定しようとしているのではなく、長方形に設定しようとしていると思います。x:Name属性を使用して Rectangle に名前を付ける必要があります。次に例を示します。

<Rectangle Width="40" Height="40" x:Name="MyRectangle" Fill="Red" />

次に、ボタンをクリックします。

private void set_Opacity(object sender, RoutedEventArgs e)
{
    MyRectangle.Opacity = 0;
}

本当に全体Windowの透明度を設定しようとしている場合:

XAML でAllowTransparencytrue とNoneを指定しない限り、ウィンドウ全体に不透明度を設定することはできません。WindowStyle

<Window x:Class="ScratchApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        AllowsTransparency="true" WindowStyle="None">

設定されている属性に注意してください。

編集

プログラムがタスク バーからアクティブ化されているときに、イベントを発生させる必要があります。どのイベントを使用できるか分かりますか?

Window.Activatedイベントをご利用ください。XAML から:

<Window Activated="Window_Activated">

そしてあなたのC#で:

private void Window_Activated(object sender, EventArgs e)
{
    //Put code here
}
于 2012-06-16T16:22:20.977 に答える
0

これには何らかの効果があります (これが WPF アプリケーションのメイン ウィンドウで呼び出されていると仮定すると、ウィンドウ全体が黒くなります)。

イベントハンドラーが正しく接続されていないようです。opacity 設定行にブレーク ポイントを設定するか、set_opacity 関数名を右クリックして [すべての参照を検索] を選択すると、windowname.g.cs ファイルにイベント ハンドラーが作成されていることがわかります。

于 2012-06-16T16:14:11.130 に答える