myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » Wie kann man Sub Objekte über einen Globalen Trigger einfärben?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie kann man Sub Objekte über einen Globalen Trigger einfärben?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
FrankenDerStein FrankenDerStein ist männlich
myCSharp.de-Mitglied

avatar-4129.gif


Dabei seit: 18.06.2015
Beiträge: 47
Entwicklungsumgebung: Visual Studio Ultimate 2013
Herkunft: Deutschland


FrankenDerStein ist offline

Wie kann man Sub Objekte über einen Globalen Trigger einfärben?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo liebe Kollegen,

ich beschäftige mich derzeit mit WPF und habe ein Problem... oder ich verstehe etwas nicht. verwundert

Ich versuche über ein Trigger den Hintergrund eines Teil Objektes farblich zu verändern.

Dies soll gesehen, wenn die Maus über egal welchem Objekt schwebt.

Leider Funktioniert es nicht wie ich es gedacht habe.

Das Objekt, das verändert werden soll, habe ich den Namen XXX gegeben.

Ich hoffe ihr könnt mir Erklärern was ich falsch mache:

XML-Code:
<UserControl x:Class="Communication.Windows.Items.Device"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:Communication.Windows.Items"
             xmlns:gif="https://github.com/XamlAnimatedGif/XamlAnimatedGif"
             xmlns:fa="http://schemas.fontawesome.io/icons/"
             mc:Ignorable="d"
             d:DesignHeight="72.803" Height="72.803" d:DesignWidth="669.25" Margin="5,5,5,0"
>
    <Grid Background="#FF404040">
        <Grid Loaded="IsLoaded">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition ></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.Style>
                <Style TargetType="Grid">
                    <Setter Property="Background" Value="Transparent"></Setter>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="XXX" Property="Background" Value="Blue" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Grid.Style>
            <Image MaxWidth="80" MaxHeight="80" x:Name="image" HorizontalAlignment="Left"  Margin="10,10,0,10" VerticalAlignment="Top" Source="pack://siteoforigin:,,,/Resources/34100.png"  Grid.Row="0"/>
            <Grid Grid.Column="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>
                </Grid.RowDefinitions>
                <Label x:Name="nameLabel" Content="Name :" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Height="24" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0"/>
                <Label x:Name="IPLabel" Content="IP :" HorizontalAlignment="Left"  VerticalAlignment="Top" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="1"/>
            </Grid>
            <Grid Grid.Column="2">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Label x:Name="NameValueLabel" Content="xxx" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Height="24" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0"/>
                <Label x:Name="IPValueLabel" Content="192.168.178.14" HorizontalAlignment="Left"  VerticalAlignment="Top" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="1"/>
            </Grid>
            <Grid Grid.Column="4" HorizontalAlignment="Right">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Label x:Name="PingLabel" Content="Ping :" Margin="0,10,0,0" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left"/>
            </Grid>
            <Grid Grid.Column="5" HorizontalAlignment="Right">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Label x:Name="PingValueLabel"  Margin="0,10,0,0" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left"/>
            </Grid>
            <Border Grid.Column="6" HorizontalAlignment="Right" BorderBrush="Black" BorderThickness="1,0,0,0" x:Name="XXX">
                <Grid Width="15" >
                    <fa:ImageAwesome Icon="AngleRight"  Width="10" Height="10" Foreground="DarkGray" />
                </Grid>
            </Border>
        </Grid>
        <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Name="selectfeld">
            <fa:ImageAwesome Icon="Gear" Spin="True" Width="50" Height="50" Name="loading" Foreground="DarkGray" />
        </Grid>
    </Grid>
</UserControl>

Mit freundlichen Grüßen, FrankenDerStein.

PS. Sorry für die seltsame Wort Wahl. Ich hoffe ihr versteht was ich bezwecke.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von FrankenDerStein am 02.09.2019 22:09.

02.09.2019 21:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MarsStein MarsStein ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3191.gif


Dabei seit: 27.06.2006
Beiträge: 3.138
Entwicklungsumgebung: VS 2013, MonoDevelop
Herkunft: Trier -> München


MarsStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

so rum geht's nicht, das musst Du genau andersrum machen.
Sprich, die Border (dein Target) bekommt den Style und reagiert per DataTrigger auf das MouseOver des Elternelements:

XML-Code:
<Border Grid.Column="6" HorizontalAlignment="Right" BorderBrush="Black" BorderThickness="1,0,0,0" x:Name="XXX">
    <Border.Style>
        <Style TargetType="Border">
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Grid}, Path=IsMouseOver}" Value="True" >
                    <Setter Property="Background" Value="Blue" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
    <Grid Width="15" >
        <fa:ImageAwesome Icon="AngleRight"  Width="10" Height="10" Foreground="DarkGray" />
    </Grid>
</Border>

Gruß, MarsStein

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MarsStein am 03.09.2019 15:30.

03.09.2019 15:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
FrankenDerStein FrankenDerStein ist männlich
myCSharp.de-Mitglied

avatar-4129.gif


Dabei seit: 18.06.2015
Beiträge: 47
Entwicklungsumgebung: Visual Studio Ultimate 2013
Herkunft: Deutschland

Themenstarter Thema begonnen von FrankenDerStein

FrankenDerStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für die Antwort und Entschuldigung für die Wartezeit.

Es funktioniert fast so wie ich es gern hätte aber leider färbt er die gewünschte stelle nur ein, wenn der Messzeiger über irgendein Schriftzug oder Bild bewegt.

Also nicht überall auf dem Element.

Mit freundlichen Grüßen, FrankenDerStein.
10.10.2019 23:46 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MarsStein MarsStein ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3191.gif


Dabei seit: 27.06.2006
Beiträge: 3.138
Entwicklungsumgebung: VS 2013, MonoDevelop
Herkunft: Trier -> München


MarsStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

Machst Du mittlerweile irgendwas anders, oder spielst Du noch im CodeBehind oder sonstwo mit den Mausereignissen rum?
Ansonsten sollte es eigentlich mit meinem Vorschlag funktionieren.

Ich hatte das mehr oder weniger 1:1 mit Deinem Code getestet und nur den Style entsprechend verschoben und angepasst und den fa-Namespace und die zugehörigen Elemente rausgeschmissen, an der Struktur aber sonst nichts geändert. Dabei ergab sich das von Dir beschriebene gewünschte Verhalten.

Gruß, MarsStein
11.10.2019 00:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
FrankenDerStein FrankenDerStein ist männlich
myCSharp.de-Mitglied

avatar-4129.gif


Dabei seit: 18.06.2015
Beiträge: 47
Entwicklungsumgebung: Visual Studio Ultimate 2013
Herkunft: Deutschland

Themenstarter Thema begonnen von FrankenDerStein

FrankenDerStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe deine Lösung 1:1 übernommen. Ich habe ansonsten nichts am Code geändert.

XML-Code:
<UserControl x:Class="Communication.Windows.Items.Device"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:Communication.Windows.Items"
             xmlns:gif="https://github.com/XamlAnimatedGif/XamlAnimatedGif"
             xmlns:fa="http://schemas.fontawesome.io/icons/"
             mc:Ignorable="d"
             d:DesignHeight="72.803" Height="72.803" d:DesignWidth="669.25" Margin="5"
>
    <Grid Background="#FF404040">
        <Grid Loaded="IsLoaded">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition ></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
                <ColumnDefinition Width="auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>

            <Image MaxWidth="80" MaxHeight="80" x:Name="image" HorizontalAlignment="Left"  Margin="10,10,0,10" VerticalAlignment="Top" Source="pack://siteoforigin:,,,/Resources/34100.png"  Grid.Row="0"/>
            <Grid Grid.Column="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>
                </Grid.RowDefinitions>
                <Label x:Name="nameLabel" Content="Name :" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Height="24" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0"/>
                <Label x:Name="IPLabel" Content="IP :" HorizontalAlignment="Left"  VerticalAlignment="Top" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="1"/>
            </Grid>
            <Grid Grid.Column="2">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Label x:Name="NameValueLabel" Content="xxx" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Height="24" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0"/>
                <Label x:Name="IPValueLabel" Content="192.168.178.14" HorizontalAlignment="Left"  VerticalAlignment="Top" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="1"/>
            </Grid>
            <Grid Grid.Column="4" HorizontalAlignment="Right">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Label x:Name="PingLabel" Content="Ping :" Margin="0,10,0,0" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left"/>
            </Grid>
            <Grid Grid.Column="5" HorizontalAlignment="Right">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Label x:Name="PingValueLabel"  Margin="0,10,0,0" FontStyle="Normal" FontSize="15" FontFamily="Calibri" Foreground="DarkGray" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left"/>
            </Grid>
            <Border Grid.Column="6" HorizontalAlignment="Right" BorderBrush="Black" BorderThickness="1,0,0,0">
                <Border.Style>
                    <Style TargetType="Border">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Grid}, Path=IsMouseOver}" Value="True" >
                                <Setter Property="Background" Value="Blue" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Border.Style>
                <Grid Width="15" >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="48*"/>
                        <RowDefinition Height="25*"/>
                    </Grid.RowDefinitions>
                    <fa:ImageAwesome Icon="AngleRight"  Width="10" Height="10" Foreground="DarkGray" Margin="2,32,3,5.823" />
                </Grid>
            </Border>

        </Grid>

        <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
            <fa:ImageAwesome Icon="Gear" Spin="True" Width="50" Height="50" Name="loading" Foreground="DarkGray" />
        </Grid>
    </Grid>
</UserControl>

Ich verstehe es daher auch nicht.

Deine Logik ist für mich eigentlich sehr einleuchtend.

Mit freundlichen Grüßen, FrankeDerStein.
13.10.2019 21:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
FrankenDerStein FrankenDerStein ist männlich
myCSharp.de-Mitglied

avatar-4129.gif


Dabei seit: 18.06.2015
Beiträge: 47
Entwicklungsumgebung: Visual Studio Ultimate 2013
Herkunft: Deutschland

Themenstarter Thema begonnen von FrankenDerStein

FrankenDerStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe das Problem gelöst, es war die Hintergrundfarbe. Diese musste auf ein Grid drüber verschieben, dann ging es.

Danke für die Hilfe.
24.10.2019 20:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 2 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 21.01.2020 18:58