<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:WpfApplication1.DecimalScrollBar"
Title="Decimal ScrollBar">
<Window.Resources>
<src:DoubleToDecimalConverter x:Key="conv" />
</Window.Resources>
<StackPanel>
<ScrollBar Name="scroll"
Orientation="Horizontal" Margin="24"
Maximum="100" LargeChange="10" SmallChange="1" />
<Label HorizontalAlignment="Center"
Content="{Binding ElementName=scroll, Path=Value,
Converter={StaticResource conv}, ConverterParameter=2}" />
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Globalization
Imports System.Windows
Imports System.Windows.Data
Namespace WpfApplication1.DecimalScrollBar
<ValueConversion(GetType(Double), GetType(Decimal))> _
Public Class DoubleToDecimalConverter
Implements IValueConverter
Public Function Convert(value As Object, typeTarget As Type, param As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
Dim num As Decimal = New [Decimal](CDbl(value))
If param IsNot Nothing Then
num = [Decimal].Round(num, Int32.Parse(TryCast(param, String)))
End If
Return num
End Function
Public Function ConvertBack(value As Object, typeTarget As Type, param As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Return [Decimal].ToDouble(CDec(value))
End Function
End Class
End Namespace
|