Path in Border - bei MouseOver Fill ändern funktioniert nicht

  • WPF MVVM
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von kafffee.

    Path in Border - bei MouseOver Fill ändern funktioniert nicht

    Hallo Community :)

    ich hoffe mal dassis ein Quickie, aber ich hab die vermeintliche Lösung sowohl auf stackoverflow gefunden als auch die KI von Bing (MIcrosoft Copilot) hat mir das ausgespuckt, aber es will noch nicht mal kompilieren:

    Ich hab ein Path innerhalb eines Border, und wenn man mit der Maus über das Border fährt, soll die Fill Property des Path geändert werden:

    XML-Quellcode

    1. <Style TargetType="{x:Type RepeatButton}" x:Key="VorSpulen">
    2. <Setter Property="Background" Value="Transparent"/>
    3. <Setter Property="Foreground" Value="{DynamicResource VordergrundfarbeBrush}"/>
    4. <Setter Property="Template">
    5. <Setter.Value>
    6. <ControlTemplate TargetType="{x:Type RepeatButton}">
    7. <Border Background="{TemplateBinding Background}" BorderBrush="{DynamicResource VordergrundfarbeBrush}" BorderThickness="0">
    8. <Path Data="xyz" HorizontalAlignment="Center" VerticalAlignment="Center" Name="MeinPfad"/>
    9. <Border.Style>
    10. <Style TargetType="{x:Type Border}">
    11. <Style.Triggers>
    12. <Trigger Property="IsMouseOver" Value="True">
    13. <Setter TargetName="MeinPfad" Property="Fill" Value="Black"/>
    14. </Trigger>
    15. </Style.Triggers>
    16. </Style>
    17. </Border.Style>
    18. </Border>
    19. </ControlTemplate>
    20. </Setter.Value>
    21. </Setter>
    22. <Style.Triggers>
    23. <Trigger Property="IsMouseOver" Value="True">
    24. <Setter Property="Background" Value="{DynamicResource VordergrundfarbeBrush}"/>
    25. <Setter Property="Foreground" Value="Black"/>
    26. </Trigger>
    27. </Style.Triggers>
    28. </Style>


    Da meckert VS in Zeile 14 und sagt "Der Name "MeinPfad" wurde nicht erkannt."

    Weiss jemand was da los ist?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()

    Neu

    Beim echten RepeatButtonStyle schaut das Ganze so aus (siehe Zeile#47):
    Spoiler anzeigen

    XML-Quellcode

    1. <Style x:Key="FocusVisual">
    2. <Setter Property="Control.Template">
    3. <Setter.Value>
    4. <ControlTemplate>
    5. <Rectangle Margin="2" StrokeDashArray="1 2" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" SnapsToDevicePixels="true" StrokeThickness="1"/>
    6. </ControlTemplate>
    7. </Setter.Value>
    8. </Setter>
    9. </Style>
    10. <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
    11. <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
    12. <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
    13. <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
    14. <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
    15. <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
    16. <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
    17. <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
    18. <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
    19. <Style x:Key="BaseButtonStyle" TargetType="{x:Type ButtonBase}">
    20. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
    21. <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
    22. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
    23. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
    24. <Setter Property="BorderThickness" Value="1"/>
    25. <Setter Property="HorizontalContentAlignment" Value="Center"/>
    26. <Setter Property="VerticalContentAlignment" Value="Center"/>
    27. <Setter Property="Padding" Value="1"/>
    28. <Setter Property="Template">
    29. <Setter.Value>
    30. <ControlTemplate TargetType="{x:Type ButtonBase}">
    31. <Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
    32. <!--<ContentPresenter x:Name="contentPresenter" Focusable="False"
    33. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
    34. Margin="{TemplateBinding Padding}"
    35. RecognizesAccessKey="True"
    36. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
    37. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>-->
    38. <Path Data="M16 27v-10l-10 10v-22l10 10v-10l11 11z" HorizontalAlignment="Center" VerticalAlignment="Center" Name="MeinPfad" Fill="Transparent"/>
    39. </Border>
    40. <ControlTemplate.Triggers>
    41. <Trigger Property="Button.IsDefaulted" Value="true">
    42. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
    43. </Trigger>
    44. <Trigger Property="IsMouseOver" Value="true">
    45. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
    46. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
    47. <Setter TargetName="MeinPfad" Property="Fill" Value="Black"/>
    48. </Trigger>
    49. <Trigger Property="IsPressed" Value="true">
    50. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
    51. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
    52. </Trigger>
    53. <Trigger Property="IsEnabled" Value="false">
    54. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
    55. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
    56. <!--<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>-->
    57. <Setter Property="TextElement.Foreground" TargetName="border" Value="{StaticResource Button.Disabled.Foreground}"/>
    58. </Trigger>
    59. </ControlTemplate.Triggers>
    60. </ControlTemplate>
    61. </Setter.Value>
    62. </Setter>
    63. </Style>
    64. <Style x:Key="RepeatButtonStyle1" BasedOn="{StaticResource BaseButtonStyle}" TargetType="{x:Type RepeatButton}">
    65. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
    66. </Style>
    Der Trigger wird auf ControlTemplate angewendet!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()