2017-02-16 5 views
-1

Ich habe so ListView, innerhalb jedes i NumericUpDown haben:WPF wie Maus für 2 verschiedene Steuerungen, um Stil über

xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 

<ListView.Resources> 
    <DataTemplate x:Key="MyDataTemplate2"> 
     <Grid> 
      <Controls:NumericUpDown 
       Minimum="0" 
       Maximum="50" 
       Value="{Binding Path=Speed}" 
       StringFormat="N1"          
       Width="50" 
       MinWidth="50" 
       Height="17" 
       Interval="0.1" 
       HorizontalAlignment="Left" 
       HideUpDownButtons="True" 
       Margin="15,0,0,0"/> 
      <TextBlock Grid.Column="1" Margin="0,-4,0,0" Text="{Binding Path=Value, ElementName=sliderColumn, StringFormat={}x{0:N0}}" 
        FontSize="11" Foreground="Gainsboro" VerticalAlignment="Center" HorizontalAlignment="Left" /> 
     </Grid> 
    </DataTemplate> 
</ListView.Resources> 

Und in meinem ListView.ItemContainerStyle Auslöser für Mouse Over:

<MultiTrigger> 
    <MultiTrigger.Conditions> 
     <Condition Property="IsMouseOver" Value="True"/> 
    </MultiTrigger.Conditions> 
    <Setter Property="Foreground" Value="White"></Setter> 
    <Setter Property="Background" Value="#FF103766"/> 
    <Setter Property="BorderBrush" Value="#FF103766"/> 
    <Setter Property="BorderThickness" Value="0"/> 
</MultiTrigger> 

Also ich will innerhalb dieser Trigger auch ändern Sie meine NumericUpDownBackground Farbe, wenn meine Maus über spezifische ist. ist es möglich?

+0

Erstes tun, können Sie Ihre Multidatatrigger durch einen einfachen Auslöser ersetzen, da Sie nur eine Bedingung – Bruno

+0

Zweitens haben, wollen Sie Ihre NumericUpDown Kontrolle den gleichen Hintergrund haben, wie deine Reihe? – Bruno

+0

Nein, nicht das gleiche – user979033

Antwort

1

Eine Bindung mit Relative sollte den Trick

<Controls:NumericUpDown 
    Minimum="0" 
    Maximum="50" 
    Value="{Binding Path=Speed}" 
    StringFormat="N1"          
    Width="50" 
    MinWidth="50" 
    Height="17" 
    Interval="0.1" 
    HorizontalAlignment="Left" 
    HideUpDownButtons="True" 
    Margin="15,0,0,0"> 
    <Controls:NumericUpDown.Style> 
     <Style TargetType="Controls:NumericUpDown"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsMouseOver}" Value="true"> 
        <Setter Property="Background" Value="Red"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Controls:NumericUpDown.Style> 
</Controls:NumericUpDown> 
Verwandte Themen