Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Controls.Primitives
Imports System.Windows.Input
Imports System.Windows.Media.Animation
Imports DevExpress.Xpf.Charts
Namespace ChartsDemo
Partial Public Class PaletteChooser
Inherits UserControl
Private chart As ChartControl
Public Sub New(ByVal chart As ChartControl)
InitializeComponent()
Me.chart = chart
Dim count As Integer = 0
chart.Palette = PaletteSelectorHelper.ActualPalette
For Each paletteKind As PaletteKind In Palette.GetPredefinedKinds()
Dim rowDefenition As New RowDefinition()
rowDefenition.Height = GridLength.Auto
grPalettes.RowDefinitions.Add(rowDefenition)
Dim paletteItem As New PaletteItem()
paletteItem.Palette = TryCast(Activator.CreateInstance(paletteKind.Type), Palette)
If chart IsNot Nothing AndAlso chart.Palette.PaletteName = paletteItem.Palette.PaletteName Then
paletteItem.IsChecked = True
End If
AddHandler paletteItem.Checked, AddressOf paletteItem_Checked
AddHandler paletteItem.MouseLeave, AddressOf PaletteItem_ReleaseMouseCapture
paletteItem.ClickMode = ClickMode.Press
Grid.SetRow(paletteItem, count)
grPalettes.Children.Add(paletteItem)
count += 1
Next paletteKind
End Sub
Private Sub PaletteItem_ReleaseMouseCapture(ByVal sender As Object, ByVal e As MouseEventArgs)
Dim paletteItem As PaletteItem = TryCast(sender, PaletteItem)
paletteItem.ReleaseMouseCapture()
End Sub
Private Sub paletteItem_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim paletteItem As PaletteItem = TryCast(sender, PaletteItem)
If chart IsNot Nothing AndAlso paletteItem IsNot Nothing Then
chart.Palette = paletteItem.Palette
PaletteSelectorHelper.ActualPalette = paletteItem.Palette
End If
End Sub
Public Sub UpdateChart(ByVal chart As ChartControl)
Me.chart = chart
chart.Palette = PaletteSelectorHelper.ActualPalette
End Sub
End Class
End Namespace