none
Trigger für Window.IsActive arbeitet nicht RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    Ich habe in einem Window folgende Trigger für den Style festgelegt:

    <Window.Style>
            <Style TargetType="{x:Type Window}">
                <Style.Triggers>
                    <Trigger Property="IsActive" Value="False">
                        <Setter Property="Opacity" Value="0.5" />
                    </Trigger>
                    <Trigger Property="IsActive" Value="true">
                        <Setter Property="Opacity" Value="1.0" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Window.Style>

    Ich öffne aus dem Fenster ein weiteres Dialogfenster, trotzdem wird die Property "Opacity" nicht geändert.

    Ich möchte gerne, dass, wenn ein Dialogfenster (modal) geöffnet wird, dass das Ausgangsfenster zum Teil ausgegraut wird.

    Was habe ich vergessen oder evtl. falsch gemacht???

    Gruß

    Jürgen

    Freitag, 15. Januar 2016 13:08

Alle Antworten

  • Hallo Jürgen,

    wie rufst du denn den das zweite Fenster auf? Ich habe es mal mit der Show und der ShowDialog Methode probiert und konnte keine Probleme feststellen. Auch wenn ich den Owner des nicht modalen Fensters setze gibt es keine Probleme.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 15. Januar 2016 14:02
    Moderator
  • Hallo Tom,

    ich instanziere das Fenster aus einer Execute-Methode mittels ICommand:

    public void Execute(object parameter)
            {
                AkteNeuWindow neuWindow = new AkteNeuWindow();
                neuWindow.ShowActivated = true;
                neuWindow.Topmost = true;
                neuWindow.ShowDialog();
            }

    Gruß Jürgen

    Freitag, 15. Januar 2016 14:07
  • Hallo Tom,

    du hast recht. Mit einem Testprojekt mit 2 ganz simplen Fenstern klappt das auch bei mir.

    Was kann denn dazu führen, dass die Trigger nicht ausgeführt werden? Vielleicht Styles, die ich in einem ResourceDicitionary definiert habe, oder DataSources, die ich in Loaded-Methoden lade???

    Da meine Anwendung schon sehr komplex ist, muss ich mir wahrscheinlich nen "Wolf suchen".

    Gruß Jürgen

    Freitag, 15. Januar 2016 14:30
  • Hallo Jürgen,

    irgendwie kann ich es noch immer nicht nachstellen. Ich versuche es hier auf Windows 10 mit .NET 4.5.2.

    Kannst du dein Problem vielleicht in einem neuen Projekt reproduzieren und dieses hoch laden? Das könnte die Lösungsfindung vereinfachen.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 15. Januar 2016 14:33
    Moderator
  • Hallo Tom,

    das ist ja das Kuriose. In einem Testprojekt - wie oben schon erwähnt - klappt es bei mir.

    Zum Hochladen des Projektes ist dieses zu umfangreich und an eine SQL-Datenbank auf SQL-Server2014 gebunden.

    Welche Ereignisse etc. können denn dazu führen, dass Trigger nicht ausgeführt werden? Dann könnte ich die mal bei mir untersuchen.

    Gruß Jürgen

    Freitag, 15. Januar 2016 14:42
  • Hallo Jürgen,

    in Frage kommt da leider vieles. Zunächst wäre interessant zu wissen ob das Fenster halb-transparent wird, wenn es einfach den Fokus verliert. Also ohne Sub-Fenster, einfach nur ein anderes Programm fokussieren.

    Was mir momentan einfällt woran es liegen kann:

    • Eine manuelle Manipulation der Werte (Opacity)
    • Ein weiterer Style/Trigger
    • Zusätzliche Window-Eigenschaften (per WinAPI oder über irgend einen Wrapper die die Wirkung von Opacity o.ä. ändert) 


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 15. Januar 2016 15:12
    Moderator
  • Hallo Tom,

    tja, auch bei Focusierung einer anderen App wird das Fenster nicht halb-transparent. :-(

    Ich werde dann mal meine Styles in den Resourcedirectorys alle deaktivieren und dann mal schauen, ob und wann es wieder klappt.

    Danke erstmal dir für deine Bemühungen. Ich werde ggf. Nachberichten.

    Gruß und schönes WE

    Jürgen

    Freitag, 15. Januar 2016 15:46
  • Hallo Jürgen,

    Ich werde ggf. Nachberichten.

    Da es schon eine Weile her ist, ändere ich jetzt den Typ des Threads. Wenn eine Lösung gefunden wird, kannst Du den Thread erneut in Frage umwandeln und die Lösung markieren. Hat das Verfahren mit der Deaktivierung Deiner Styles in den Ressourcenverzeichnissen etwas gebracht?

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 28. Januar 2016 07:40
    Moderator
  • Hallo Dimitar,

    ich habe alles hinbekommen :-)

    Danke der Nachfrage.

    Gruß Jürgen

    Donnerstag, 28. Januar 2016 14:49