Hi Snoopy,
Rainer schrieb:
Zitat: | | Aber eines vermisse ich, wenn ich den Lautstärkepegel verändere, fehlt mit ein Balken, an dem ich sehe, wie laut es eingestellt ist. | |
Ich fand auch, dass ein ToolTip alleine nicht ausreicht, da zu umständlich (und nicht WPF gerecht ). Deshalb hab ich mir mal Gedanken zum Thema visuelle Darstellung der Lautstärke ohne Veränderung der Grunddesignstruktur mit der Button-Reihenfolge. Die Lösung ist die Darstellung der Lautstärke im Button.
Hier mal mein VolumeButton und BackgroundConverter:
Public Class VolumeButton
Inherits Button
Public Shared ReadOnly VolumeProperty As DependencyProperty = _
DependencyProperty.Register("Volume", GetType(Double), GetType( _
VolumeButton), New PropertyMetadata(50.0))
Public Property Volume() As Double
Get
Return CDbl(GetValue(VolumeProperty))
End Get
Set(ByVal value As Double)
If value < 0 Then
SetValue(VolumeProperty, 0.0)
ElseIf value > 100 Then
SetValue(VolumeProperty, 100.0)
Else
SetValue(VolumeProperty, value)
End If
End Set
End Property
End Class
<ValueConversion(GetType(Object), GetType(Brush))> _
Public Class VolumeButtonBackgroundConverter
Implements IValueConverter
Public Function Convert(ByVal value As Object, ByVal targetType As _
System.Type, ByVal parameter As Object, ByVal culture As _
System.Globalization.CultureInfo) As Object Implements _
System.Windows.Data.IValueConverter.Convert
Dim volume As Double = (CDbl(value) * -1) + 100
Dim brush As New LinearGradientBrush() With {.StartPoint = New Point( _
0.5, 0), .EndPoint = New Point(0.5, 1)}
brush.GradientStops.Add(New GradientStop(Colors.Gray, 0))
brush.GradientStops.Add(New GradientStop(Colors.Gray, volume / 100))
brush.GradientStops.Add(New GradientStop(Colors.Green, volume / 100))
brush.GradientStops.Add(New GradientStop(Colors.Green, 1))
Return brush
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As _
System.Type, ByVal parameter As Object, ByVal culture As _
System.Globalization.CultureInfo) As Object Implements _
System.Windows.Data.IValueConverter.ConvertBack
Throw New NotSupportedException("Konvertierung nur in eine Richtung" & _
"erlaubt")
End Function
End Class Geht noch weiter...
Beitrag wurde zuletzt am 26.10.09 um 00:18:11 editiert. |