wpf - Add value ticks into my Circular Slider -
this circular slider
:
<slider name="knobslider" minimum="0" maximum="50" value="1" height="99" width="75" horizontalalignment="center" verticalalignment="center" grid.column="1"> <slider.template> <controltemplate> <viewbox> <canvas width="300" height="300" margin="5"> <ellipse fill="transparent" width="300" height="300" canvas.left="0" canvas.top="0" stroke="#ff878889" strokethickness="10" mouseleftbuttonup="ellipse_mouseleftbuttonup" mousemove="ellipse_mousemove"/> <ellipse fill="transparent" width="60" height="60" canvas.left="120" canvas.top="120"/> <canvas> <line stroke="transparent" strokethickness="5" x1="150" y1="150" x2="150" y2="10" mouseleftbuttonup="ellipse_mouseleftbuttonup"/> <ellipse fill="white" width="30" height="30" canvas.left="140" canvas.top="0" mouseleftbuttondown="ellipse_mouseleftbuttondown" mouseleftbuttonup="ellipse_mouseleftbuttonup"> <ellipse.tooltip> <tooltip> <binding relativesource="{relativesource templatedparent}" path="value" converter="{staticresource valuetextconverter}"/> </tooltip> </ellipse.tooltip> </ellipse> <canvas.rendertransform> <rotatetransform centerx="150" centery="150"> <rotatetransform.angle> <multibinding converter="{staticresource valueangleconverter}"> <binding relativesource="{relativesource templatedparent}" path="value"/> <binding relativesource="{relativesource templatedparent}" path="minimum"/> <binding relativesource="{relativesource templatedparent}" path="maximum"/> </multibinding> </rotatetransform.angle> </rotatetransform> </canvas.rendertransform> </canvas> </canvas> </viewbox> </controltemplate> </slider.template> </slider> public class valueangleconverter : imultivalueconverter { #region imultivalueconverter members public object convert(object[] values, type targettype, object parameter, system.globalization.cultureinfo culture) { double value = (double)values[0]; double minimum = (double)values[1]; double maximum = (double)values[2]; return myhelper.getangle(value, maximum, minimum); } public object[] convertback(object value, type[] targettypes, object parameter, system.globalization.cultureinfo culture) { throw new notimplementedexception(); } #endregion } public class valuetextconverter : ivalueconverter { #region ivalueconverter members public object convert(object value, type targettype, object parameter, system.globalization.cultureinfo culture) { double v = (double)value; return string.format("{0:f2}", v); } public object convertback(object value, type targettype, object parameter, system.globalization.cultureinfo culture) { throw new notimplementedexception(); } #endregion }
and results:
is possible change of circular slider
similar one:
and add value tick , show current value of controller ad button of control in example instead of put textblock
inside circle
?
Comments
Post a Comment