1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Namespace ColorFont
Partial Public Class ColorPicker
Inherits UserControl
Private viewModel As ColorPickerViewModel
Public Shared ReadOnly ColorChangedEvent As RoutedEvent = EventManager.RegisterRoutedEvent("ColorChanged", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(ColorPicker))
Public Shared ReadOnly SelectedColorProperty As DependencyProperty = DependencyProperty.Register("SelectedColor", GetType(FontColor), GetType(ColorPicker), New UIPropertyMetadata(Nothing))
Public Sub New()
InitializeComponent()
Me.viewModel = New ColorPickerViewModel()
Me.DataContext = Me.viewModel
End Sub
Public Custom Event ColorChanged As RoutedEventHandler
AddHandler(ByVal value As RoutedEventHandler)
Me.AddHandler(ColorChangedEvent, value)
End AddHandler
RemoveHandler(ByVal value As RoutedEventHandler)
Me.RemoveHandler(ColorChangedEvent, value)
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
Me.RaiseEvent(e)
End RaiseEvent
End Event
Private Sub RaiseColorChangedEvent()
Dim newEventArgs As New RoutedEventArgs(ColorPicker.ColorChangedEvent)
MyBase.RaiseEvent(newEventArgs)
End Sub
Public Property SelectedColor() As FontColor
Get
Dim fc As FontColor = DirectCast(Me.GetValue(SelectedColorProperty), FontColor)
If fc Is Nothing Then
fc = AvailableColors.GetFontColor("Black")
End If
Return fc
End Get
Set(value As FontColor)
Me.viewModel.SelectedFontColor = value
SetValue(SelectedColorProperty, value)
End Set
End Property
Private Sub superCombo_DropDownClosed(sender As Object, e As EventArgs)
Me.SetValue(SelectedColorProperty, Me.viewModel.SelectedFontColor)
Me.RaiseColorChangedEvent()
End Sub
Private Sub superCombo_Loaded(sender As Object, e As RoutedEventArgs)
Me.SetValue(SelectedColorProperty, Me.viewModel.SelectedFontColor)
End Sub
End Class
End Namespace |
Partager