WPF Charts Problem

  • WPF

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von r0tzi.

    WPF Charts Problem

    Hi Leute,

    ich probiere gerade einen Chart in mein Projekt einzufügen nach diesem Guide hier: c-sharpcorner.com/UploadFile/mahesh/charting-in-wpf/

    als ich alles so eingefügt habe, zeigt es mir den chart bereits an.. nun starte ich mein projekt und dann kommt:


    System.Windows.Markup.XamlParseException: "Zeilennummer "8" und Zeilenposition "144" von "Für den Typ "WpfApp1.Frm_Main" wurde kein übereinstimmender Konstruktor gefunden. Der Typ kann mit der Arguments- oder der FactoryMethod-Direktive erstellt werden."."

    ich hab absolut 0 ahnung was ich falsch mache oder wo das problem ist.
    kann mir jemand helfen? :) Vielen Dank
    Hallo

    Zeig uns bitte mal deinen XAML und deinen Code des Frm_Main.
    Evtl. Hast du was unbenannt und die WPF kann nun keinen Konstruktor aufrufen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Quellcode

    1. <Window x:Class="Frm_Main"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6. xmlns:local="clr-namespace:Client"
    7. mc:Ignorable="d"
    8. Title="Client" Width="1200" Height="800" MinWidth="1150" MinHeight="800" Closing="Window_Closing" WindowStartupLocation="CenterScreen">
    9. <Grid>


    der code is etwas lääääääääääääääääääääänger schon :D was benötigst du denn genau?

    was ist denn der konstruktor? also ohne die 2 xmlns funktionert es einwandfrei

    ahh kann es sein, dass es daran liegt, dass ich die charts ned gebindet habe? weil wollte es erst testen ohne bindings etc... halt erstmal schön gestallten im ui ^^

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

    Hallo @r0tzi

    Langsam bitte.
    Erstmal bitte den ganzen XAML nicht nur den obersten Teil. Wenn Code länge ist dann gerne in einen Spoiler packen.
    Vom Code benötige ich "nur" die CodeBehind des Window.

    r0tzi schrieb:

    was ist denn der konstruktor?

    Z.b.:

    VB.NET-Quellcode

    1. Public Sub New()
    2. End Sub

    r0tzi schrieb:

    also ohne die 2 xmlns funktionert es einwandfrei

    Ohne welche zwei?

    r0tzi schrieb:

    weil wollte es erst testen ohne bindings

    Schlechte Idee. Gerade die Charts funktionieren mit Binding ganz anders als ohne. Sprich - deine Probiererei ist umsonst weil du den Code dann später in keinster weise weiterverwenden könntest. Aber das hat ja jetzt vermutlich nicht direkt mit deinem Problem zu tun denke ich.


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hi, ich habe nun noch einmal alles gelöscht und hab es mit Daten gefüllt... nun geht es :) wieder etwas schlauer geworden. un habe ich aber noch ein anderes thema, was ich nicht so recht verstehe...

    ich befülle den chart so:

    Quellcode

    1. Dim List As List(Of KeyValuePair(Of String, Double)) = New List(Of KeyValuePair(Of String, Double))
    2. List.Add(New KeyValuePair(Of String, Double)(lstOfString(0).Substring(0, 10), 1))
    3. List.Add(New KeyValuePair(Of String, Double)(lstOfString(1).Substring(0, 10), 2))
    4. List.Add(New KeyValuePair(Of String, Double)(lstOfString(2).Substring(0, 10), 3))
    5. List.Add(New KeyValuePair(Of String, Double)(lstOfString(3).Substring(0, 10), 4))
    6. List.Add(New KeyValuePair(Of String, Double)(lstOfString(4).Substring(0, 10), 5))
    7. List.Add(New KeyValuePair(Of String, Double)(lstOfString(5).Substring(0, 10), 6))
    8. List.Add(New KeyValuePair(Of String, Double)(lstOfString(6).Substring(0, 10), 7))
    9. List.Add(New KeyValuePair(Of String, Double)(lstOfString(7).Substring(0, 10), 8))
    10. List.Add(New KeyValuePair(Of String, Double)(lstOfString(8).Substring(0, 10), 9))
    11. List.Add(New KeyValuePair(Of String, Double)(lstOfString(9).Substring(0, 10), 10))
    12. DirectCast(frm_Main.mcChart.Series(0), AreaSeries).ItemsSource = List



    Die lstOfString beinhaltet ein Datum .. also 22.02.2019, 23.02.2019, 24.02.2019 usw... aber als String.

    Beim programmstart sind die daten alle schön aufsteigened, wie in der lstOfString von klein nach gross...

    Es werden immer nur 10 Dates angezeigt... rufe ich nun die gleiche methode währrend der laufzeit noch einmal auf, verschieben Sie die Daten im Chart..

    dann ist es z.B auf einmal: 24.02.2019, 22.02.2019, 23.02.2019 ..

    ich vermute es hängt mit der Series zusammen... wenn ich diese vorher aber mit Series.Clear() lösche, kommt ne ausnahme "Der Index lag ausserhalb des Bereichs"...

    was kann ich da tun, dass ich den Chart genauso laden kann wie beim programmstart, nur währrend der laufzeit?

    r0tzi schrieb:

    ich befülle den chart so:

    Wolltest du nicht mit Binding arbeiten? Warum nun doch nicht?

    r0tzi schrieb:

    aber als String.

    Das ist imho eine schlechte Idee. Die zugrunde liegende Liste sollte schon eine KeyValuePAir(Of Date,Integer) sein da sich ein Datum als String bei sortieren anders verhält.

    z.b. würde bei eine List(Of String) der 01.03.2019 vor dem 12.08.2018 kommen.

    Also, mit Binding und den richtigen Datentypen würde es bei mir so aussehen:

    XML-Quellcode

    1. <Grid>
    2. <DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart" Width="400" Height="250" Background="LightSteelBlue">
    3. <DVC:Chart.Series>
    4. <DVC:BarSeries Title="Datumstest" ItemsSource="{Binding TestData}"
    5. IndependentValueBinding="{Binding Key}"
    6. DependentValueBinding="{Binding Path=Value}">
    7. </DVC:BarSeries>
    8. </DVC:Chart.Series>
    9. </DVC:Chart>
    10. </Grid>


    VB.NET-Quellcode

    1. Imports System.Collections.ObjectModel
    2. Imports System.ComponentModel
    3. Class MainWindow
    4. Implements INotifyPropertyChanged
    5. Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
    6. Me.DataContext = Me
    7. Dim data As New List(Of KeyValuePair(Of Date, Integer))
    8. data.Add(New KeyValuePair(Of Date, Integer)(New Date(2018, 2, 12), 3))
    9. data.Add(New KeyValuePair(Of Date, Integer)(New Date(2019, 1, 1), 7))
    10. data.Add(New KeyValuePair(Of Date, Integer)(New Date(2018, 8, 23), 2))
    11. data.OrderByDescending(Function(o) o.Key).ToList().ForEach(Sub(x) TestData.Add(New KeyValuePair(Of String, Integer)(x.Key.ToShortDateString, x.Value)))
    12. End Sub
    13. Private _testData As New ObservableCollection(Of KeyValuePair(Of String, Integer))
    14. Public Property TestData() As ObservableCollection(Of KeyValuePair(Of String, Integer))
    15. Get
    16. Return _testData
    17. End Get
    18. Set(ByVal value As ObservableCollection(Of KeyValuePair(Of String, Integer)))
    19. _testData = value
    20. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(TestData)))
    21. End Set
    22. End Property
    23. Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    24. End Class


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hi,

    das ist klar dass er nur nach den ersten 2 zahlen sortiert.. ich probiere ja nur etwas rum um die charts zu lernen und zu verstehen wie sie funktionieren. ja binding klar, hab ja gerade nur den guide mal nachgebaut.
    Ich werds mal umbauen, da hilft mir das von dir sicher weiter -> vielen Dank!


    Weisst du zufällig ob es auch möglich ist, eine zweite Y achse auf der rechten seite einzufügen? Oder geben das die Charts nicht her? Kann davon in dem guide nichts finden.
    Ist es auch irgendwie möglich die grösse des inneren (weisses Viereck) zu verändern? die Abstände zum äusseren rand etc? hab da auch nichts gefunden

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

    Hallo

    OK, einiges an Fragen. Ich versuchs mal. Wenn du weitere Weter in deinem Chart haben möchtest benötigst du mehrere (in diesem Fall) BarSeries welche du an witere ObservableCollection eines Key,Value Pairs bindest. Im Grunde Simpel.

    XML-Quellcode

    1. <DVC:Chart x:Name="mcChart" Width="400" Height="250" Background="LightSteelBlue">
    2. <DVC:BarSeries Title="Datumstest" ItemsSource="{Binding TestData}"
    3. IndependentValueBinding="{Binding Key}"
    4. DependentValueBinding="{Binding Value}"/>
    5. <DVC:BarSeries Title="Neuer Test" ItemsSource="{Binding TestData1}"
    6. IndependentValueBinding="{Binding Key}"
    7. DependentValueBinding="{Binding Value}"/>
    8. </DVC:Chart>


    Einmahl gebunden an ein TestData und einmahl an ein TestData1.
    Hier der CodeBehind mit den Eigenschaften:

    VB.NET-Quellcode

    1. Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
    2. Me.DataContext = Me
    3. Dim data As New List(Of KeyValuePair(Of Date, Integer))
    4. data.Add(New KeyValuePair(Of Date, Integer)(New Date(2018, 2, 12), 3))
    5. data.Add(New KeyValuePair(Of Date, Integer)(New Date(2019, 1, 1), 7))
    6. data.Add(New KeyValuePair(Of Date, Integer)(New Date(2018, 8, 23), 2))
    7. data.OrderByDescending(Function(o) o.Key).ToList().ForEach(Sub(x) TestData.Add(New KeyValuePair(Of String, Integer)(x.Key.ToShortDateString, x.Value)))
    8. Dim data1 As New List(Of KeyValuePair(Of Date, Integer))
    9. data1.Add(New KeyValuePair(Of Date, Integer)(New Date(2018, 2, 12), 6))
    10. data1.Add(New KeyValuePair(Of Date, Integer)(New Date(2019, 1, 1), 4))
    11. data1.Add(New KeyValuePair(Of Date, Integer)(New Date(2018, 8, 23), 3))
    12. data1.OrderByDescending(Function(o) o.Key).ToList().ForEach(Sub(x) TestData1.Add(New KeyValuePair(Of String, Integer)(x.Key.ToShortDateString, x.Value)))
    13. End Sub
    14. Private _testData As New ObservableCollection(Of KeyValuePair(Of String, Integer))
    15. Public Property TestData() As ObservableCollection(Of KeyValuePair(Of String, Integer))
    16. Get
    17. Return _testData
    18. End Get
    19. Set(ByVal value As ObservableCollection(Of KeyValuePair(Of String, Integer)))
    20. _testData = value
    21. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(TestData)))
    22. End Set
    23. End Property
    24. Private _testData1 As New ObservableCollection(Of KeyValuePair(Of String, Integer))
    25. Public Property TestData1() As ObservableCollection(Of KeyValuePair(Of String, Integer))
    26. Get
    27. Return _testData1
    28. End Get
    29. Set(ByVal value As ObservableCollection(Of KeyValuePair(Of String, Integer)))
    30. _testData1 = value
    31. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(TestData1)))
    32. End Set
    33. End Property


    Was das anpassen betrifft läuft das in etwa so ab wie bei jedem anderen Control oder UI ELement der WPF. Schau dir dazu auch gerne mal die Kapitel 2.1.1.2 und 2.1.1.3 meiner Tutorialreihe an.
    In dem Video zeige ich auch wie man sich das DEfault-Template und die Styles holte welche das Control von sich aus implementiert hat um darauf einen eigenen Style bzw. ein Template zu erstellen.

    So sieht z.b. der Style der Chart-Controls aus:
    Spoiler anzeigen

    Quellcode

    1. <Style x:Key="ChartStyle1" TargetType="{x:Type DVC:Chart}">
    2. <Setter Property="BorderBrush" Value="Black"/>
    3. <Setter Property="BorderThickness" Value="1"/>
    4. <Setter Property="IsTabStop" Value="False"/>
    5. <Setter Property="SnapsToDevicePixels" Value="True"/>
    6. <Setter Property="Palette">
    7. <Setter.Value>
    8. <DV:ResourceDictionaryCollection>
    9. <ResourceDictionary>
    10. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    11. <Setter Property="Background">
    12. <Setter.Value>
    13. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    14. <GradientStop Color="#FFB9D6F7"/>
    15. <GradientStop Color="#FF284B70" Offset="1"/>
    16. </RadialGradientBrush>
    17. </Setter.Value>
    18. </Setter>
    19. </Style>
    20. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    21. <GradientStop Color="#FFB9D6F7"/>
    22. <GradientStop Color="#FF284B70" Offset="1"/>
    23. </RadialGradientBrush>
    24. </ResourceDictionary>
    25. <ResourceDictionary>
    26. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    27. <Setter Property="Background">
    28. <Setter.Value>
    29. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    30. <GradientStop Color="#FFFBB7B5"/>
    31. <GradientStop Color="#FF702828" Offset="1"/>
    32. </RadialGradientBrush>
    33. </Setter.Value>
    34. </Setter>
    35. </Style>
    36. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    37. <GradientStop Color="#FFFBB7B5"/>
    38. <GradientStop Color="#FF702828" Offset="1"/>
    39. </RadialGradientBrush>
    40. </ResourceDictionary>
    41. <ResourceDictionary>
    42. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    43. <Setter Property="Background">
    44. <Setter.Value>
    45. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    46. <GradientStop Color="#FFB8C0AC"/>
    47. <GradientStop Color="#FF5F7143" Offset="1"/>
    48. </RadialGradientBrush>
    49. </Setter.Value>
    50. </Setter>
    51. </Style>
    52. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    53. <GradientStop Color="#FFB8C0AC"/>
    54. <GradientStop Color="#FF5F7143" Offset="1"/>
    55. </RadialGradientBrush>
    56. </ResourceDictionary>
    57. <ResourceDictionary>
    58. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    59. <Setter Property="Background">
    60. <Setter.Value>
    61. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    62. <GradientStop Color="#FFFDE79C"/>
    63. <GradientStop Color="#FFF6BC0C" Offset="1"/>
    64. </RadialGradientBrush>
    65. </Setter.Value>
    66. </Setter>
    67. </Style>
    68. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    69. <GradientStop Color="#FFFDE79C"/>
    70. <GradientStop Color="#FFF6BC0C" Offset="1"/>
    71. </RadialGradientBrush>
    72. </ResourceDictionary>
    73. <ResourceDictionary>
    74. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    75. <Setter Property="Background">
    76. <Setter.Value>
    77. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    78. <GradientStop Color="#FFA9A3BD"/>
    79. <GradientStop Color="#FF382C6C" Offset="1"/>
    80. </RadialGradientBrush>
    81. </Setter.Value>
    82. </Setter>
    83. </Style>
    84. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    85. <GradientStop Color="#FFA9A3BD"/>
    86. <GradientStop Color="#FF382C6C" Offset="1"/>
    87. </RadialGradientBrush>
    88. </ResourceDictionary>
    89. <ResourceDictionary>
    90. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    91. <Setter Property="Background">
    92. <Setter.Value>
    93. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    94. <GradientStop Color="#FFB1A1B1"/>
    95. <GradientStop Color="#FF50224F" Offset="1"/>
    96. </RadialGradientBrush>
    97. </Setter.Value>
    98. </Setter>
    99. </Style>
    100. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    101. <GradientStop Color="#FFB1A1B1"/>
    102. <GradientStop Color="#FF50224F" Offset="1"/>
    103. </RadialGradientBrush>
    104. </ResourceDictionary>
    105. <ResourceDictionary>
    106. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    107. <Setter Property="Background">
    108. <Setter.Value>
    109. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    110. <GradientStop Color="#FF9DC2B3"/>
    111. <GradientStop Color="#FF1D7554" Offset="1"/>
    112. </RadialGradientBrush>
    113. </Setter.Value>
    114. </Setter>
    115. </Style>
    116. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    117. <GradientStop Color="#FF9DC2B3"/>
    118. <GradientStop Color="#FF1D7554" Offset="1"/>
    119. </RadialGradientBrush>
    120. </ResourceDictionary>
    121. <ResourceDictionary>
    122. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    123. <Setter Property="Background">
    124. <Setter.Value>
    125. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    126. <GradientStop Color="#FFB5B5B5"/>
    127. <GradientStop Color="#FF4C4C4C" Offset="1"/>
    128. </RadialGradientBrush>
    129. </Setter.Value>
    130. </Setter>
    131. </Style>
    132. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    133. <GradientStop Color="#FFB5B5B5"/>
    134. <GradientStop Color="#FF4C4C4C" Offset="1"/>
    135. </RadialGradientBrush>
    136. </ResourceDictionary>
    137. <ResourceDictionary>
    138. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    139. <Setter Property="Background">
    140. <Setter.Value>
    141. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    142. <GradientStop Color="#FF98C1DC"/>
    143. <GradientStop Color="#FF0271AE" Offset="1"/>
    144. </RadialGradientBrush>
    145. </Setter.Value>
    146. </Setter>
    147. </Style>
    148. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    149. <GradientStop Color="#FF98C1DC"/>
    150. <GradientStop Color="#FF0271AE" Offset="1"/>
    151. </RadialGradientBrush>
    152. </ResourceDictionary>
    153. <ResourceDictionary>
    154. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    155. <Setter Property="Background">
    156. <Setter.Value>
    157. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    158. <GradientStop Color="#FFC1C0AE"/>
    159. <GradientStop Color="#FF706E41" Offset="1"/>
    160. </RadialGradientBrush>
    161. </Setter.Value>
    162. </Setter>
    163. </Style>
    164. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    165. <GradientStop Color="#FFC1C0AE"/>
    166. <GradientStop Color="#FF706E41" Offset="1"/>
    167. </RadialGradientBrush>
    168. </ResourceDictionary>
    169. <ResourceDictionary>
    170. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    171. <Setter Property="Background">
    172. <Setter.Value>
    173. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    174. <GradientStop Color="#FFADBDC0"/>
    175. <GradientStop Color="#FF446A73" Offset="1"/>
    176. </RadialGradientBrush>
    177. </Setter.Value>
    178. </Setter>
    179. </Style>
    180. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    181. <GradientStop Color="#FFADBDC0"/>
    182. <GradientStop Color="#FF446A73" Offset="1"/>
    183. </RadialGradientBrush>
    184. </ResourceDictionary>
    185. <ResourceDictionary>
    186. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    187. <Setter Property="Background">
    188. <Setter.Value>
    189. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    190. <GradientStop Color="#FF2F8CE2"/>
    191. <GradientStop Color="#FF0C3E69" Offset="1"/>
    192. </RadialGradientBrush>
    193. </Setter.Value>
    194. </Setter>
    195. </Style>
    196. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    197. <GradientStop Color="#FF2F8CE2"/>
    198. <GradientStop Color="#FF0C3E69" Offset="1"/>
    199. </RadialGradientBrush>
    200. </ResourceDictionary>
    201. <ResourceDictionary>
    202. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    203. <Setter Property="Background">
    204. <Setter.Value>
    205. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    206. <GradientStop Color="Gainsboro"/>
    207. <GradientStop Color="#FF757575" Offset="1"/>
    208. </RadialGradientBrush>
    209. </Setter.Value>
    210. </Setter>
    211. </Style>
    212. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    213. <GradientStop Color="Gainsboro"/>
    214. <GradientStop Color="#FF757575" Offset="1"/>
    215. </RadialGradientBrush>
    216. </ResourceDictionary>
    217. <ResourceDictionary>
    218. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    219. <Setter Property="Background">
    220. <Setter.Value>
    221. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    222. <GradientStop Color="#FFF4F4F4"/>
    223. <GradientStop Color="#FFB7B7B7" Offset="1"/>
    224. </RadialGradientBrush>
    225. </Setter.Value>
    226. </Setter>
    227. </Style>
    228. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    229. <GradientStop Color="#FFF4F4F4"/>
    230. <GradientStop Color="#FFB7B7B7" Offset="1"/>
    231. </RadialGradientBrush>
    232. </ResourceDictionary>
    233. <ResourceDictionary>
    234. <Style x:Key="DataPointStyle" TargetType="{x:Type Control}">
    235. <Setter Property="Background">
    236. <Setter.Value>
    237. <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    238. <GradientStop Color="#FFF4F4F4"/>
    239. <GradientStop Color="#FFA3A3A3" Offset="1"/>
    240. </RadialGradientBrush>
    241. </Setter.Value>
    242. </Setter>
    243. </Style>
    244. <RadialGradientBrush x:Key="Background" Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
    245. <GradientStop Color="#FFF4F4F4"/>
    246. <GradientStop Color="#FFA3A3A3" Offset="1"/>
    247. </RadialGradientBrush>
    248. </ResourceDictionary>
    249. </DV:ResourceDictionaryCollection>
    250. </Setter.Value>
    251. </Setter>
    252. <Setter Property="TitleStyle">
    253. <Setter.Value>
    254. <Style TargetType="{x:Type DV:Title}">
    255. <Setter Property="FontSize" Value="16"/>
    256. <Setter Property="HorizontalAlignment" Value="Center"/>
    257. <Setter Property="Margin" Value="0,10"/>
    258. </Style>
    259. </Setter.Value>
    260. </Setter>
    261. <Setter Property="LegendStyle">
    262. <Setter.Value>
    263. <Style TargetType="{x:Type DV:Legend}">
    264. <Setter Property="Margin" Value="15,0"/>
    265. <Setter Property="VerticalAlignment" Value="Center"/>
    266. <Setter Property="BorderBrush" Value="#FFDBDBDB"/>
    267. <Setter Property="Background">
    268. <Setter.Value>
    269. <LinearGradientBrush EndPoint="0.442,0.005" StartPoint="0.558,0.995">
    270. <GradientStop Color="#FFDBDBDB"/>
    271. <GradientStop Color="White" Offset="1"/>
    272. </LinearGradientBrush>
    273. </Setter.Value>
    274. </Setter>
    275. </Style>
    276. </Setter.Value>
    277. </Setter>
    278. <Setter Property="ChartAreaStyle">
    279. <Setter.Value>
    280. <Style TargetType="{x:Type Panel}">
    281. <Setter Property="MinWidth" Value="100"/>
    282. <Setter Property="MinHeight" Value="75"/>
    283. </Style>
    284. </Setter.Value>
    285. </Setter>
    286. <Setter Property="PlotAreaStyle">
    287. <Setter.Value>
    288. <Style TargetType="{x:Type Grid}">
    289. <Setter Property="Background">
    290. <Setter.Value>
    291. <LinearGradientBrush EndPoint="0.457,0.296" StartPoint="0.459,1.296">
    292. <GradientStop Color="#FFCBCBCB"/>
    293. <GradientStop Color="White" Offset="1"/>
    294. </LinearGradientBrush>
    295. </Setter.Value>
    296. </Setter>
    297. </Style>
    298. </Setter.Value>
    299. </Setter>
    300. <Setter Property="Template">
    301. <Setter.Value>
    302. <ControlTemplate TargetType="{x:Type DVC:Chart}">
    303. <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="10">
    304. <Grid>
    305. <Grid.RowDefinitions>
    306. <RowDefinition Height="Auto"/>
    307. <RowDefinition Height="*"/>
    308. </Grid.RowDefinitions>
    309. <DV:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}"/>
    310. <Grid Margin="0,15" Grid.Row="1">
    311. <Grid.ColumnDefinitions>
    312. <ColumnDefinition Width="*"/>
    313. <ColumnDefinition Width="Auto"/>
    314. </Grid.ColumnDefinitions>
    315. <DV:Legend x:Name="Legend" Grid.Column="1" Style="{TemplateBinding LegendStyle}" Title="{TemplateBinding LegendTitle}"/>
    316. <Primitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
    317. <Grid Style="{TemplateBinding PlotAreaStyle}" Panel.ZIndex="-1"/>
    318. <Border BorderBrush="#FF919191" BorderThickness="1" Panel.ZIndex="10"/>
    319. </Primitives:EdgePanel>
    320. </Grid>
    321. </Grid>
    322. </Border>
    323. </ControlTemplate>
    324. </Setter.Value>
    325. </Setter>
    326. </Style>


    Ja, ist viel - Man kann sich aber auch nur das "rauspicken" was man benötigt.

    Z.b. um die Legende zu ändern folgendes:

    XML-Quellcode

    1. <DVC:Chart x:Name="mcChart2" Width="400" Height="250" Background="LightSteelBlue">
    2. <DVC:BarSeries Title="Datumstest" ItemsSource="{Binding TestData}"
    3. IndependentValueBinding="{Binding Key}"
    4. DependentValueBinding="{Binding Value}"/>
    5. <DVC:BarSeries Title="Neuer Test" ItemsSource="{Binding TestData1}"
    6. IndependentValueBinding="{Binding Key}"
    7. DependentValueBinding="{Binding Value}"/>
    8. <DVC:Chart.LegendStyle>
    9. <Style TargetType="{x:Type DV:Legend}">
    10. <Setter Property="Margin" Value="15,0"/>
    11. <Setter Property="VerticalAlignment" Value="Center"/>
    12. <Setter Property="BorderBrush" Value="Blue"/>
    13. <Setter Property="BorderThickness" Value="4"/>
    14. <Setter Property="Background">
    15. <Setter.Value>
    16. <LinearGradientBrush EndPoint="0.442,0.005" StartPoint="0.558,0.995">
    17. <GradientStop Color="Red"/>
    18. <GradientStop Color="White" Offset="1"/>
    19. </LinearGradientBrush>
    20. </Setter.Value>
    21. </Setter>
    22. </Style>
    23. </DVC:Chart.LegendStyle>
    24. </DVC:Chart>


    Das sieht das so aus:


    Ich hoffe damit hab ich dir etwas weiterhelfen können.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##