我是C#Silverlight 5初学者,我有一种情况,我只需要使用C#代码(而不是xaml)创建一个滑块。
我能够成功显示滑块,但问题Silverlight没有任何轻微的刻度管理。
我想要的是这样的GUI:
目前我有这个GUI:
所以我必须在开始和结束时添加-2和2,我还必须添加刻度线。
但我无法在Silverlight 5中找到解决方法。
我当前的代码看起来像这样:
Slider slider1 = new Slider();
TextBox txtblk6 = new TextBox();
private static Grid GenertateSlider(ViewModel.XmlParameterClasses.Parameter param, int LoopCount)
{
// Create a new slider and add a ValueChanged event handler.
slider1.Orientation = Orientation.Horizontal;
slider1.Width = 100;
slider1.Maximum = param.Component.Attributes.Max; //It is the Maximum value (-2 in my case)
slider1.Minimum = param.Component.Attributes.Min;//(-1 in my case)
// slider1
Grid.SetColumn(txtblk6, 2);
Grid.SetRow(txtblk6, LoopCount); //Here LoopCount is to decide the row number and is passed through function call.
g.Children.Add(txtblk6);
txtblk6.Text = slider1.Value.ToString() + " Pips";
slider1.ValueChanged += Slider_ValueChanged1;
Grid.SetColumn(slider1, 1);
Grid.SetRow(slider1, LoopCount);
g.Children.Add(slider1);
return (g);
}
和
private void Slider_ValueChanged1(object sender, RoutedPropertyChangedEventArgs<double> e)
{
// Add code to perform some action here.
txtblk6.Text = slider1.Value.ToString() + " Pips";
}
有人可以告诉我如何添加?
(1)Slider Ticks?
(2)-2 0和2,如给定的GUI?
(3)如何显示只显示数据四舍五入(因为现在它显示为0.555797478;我的意思是非常monng但我想要它为0.6而不是这个非常长的值)?
将是一个很大的帮助。
答案 0 :(得分:1)
您会找到一个带刻度值here的滑块示例。
答案 1 :(得分:0)
这样做有什么不对?
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
Grid g = new Grid();
g.HorizontalAlignment = HorizontalAlignment.Stretch;
g.VerticalAlignment = VerticalAlignment.Center;
g.Height = 68;
g.RowDefinitions.Add(new RowDefinition());
g.RowDefinitions.Add(new RowDefinition());
Slider slider = new Slider();
slider.TickPlacement = TickPlacement.Both;
slider.Maximum = 2.0;
slider.Minimum = -2.0;
slider.TickFrequency = 0.5;
slider.Height = 40;
slider.HorizontalAlignment = HorizontalAlignment.Stretch;
Grid.SetRow(slider, 0);
g.Children.Add(slider);
TextBlock t1 = new TextBlock();
t1.Height = 28;
t1.HorizontalAlignment = HorizontalAlignment.Left;
t1.Text = "-2";
Grid.SetRow(t1, 1);
g.Children.Add(t1);
TextBlock t2 = new TextBlock();
t2.Height = 28;
t2.HorizontalAlignment = HorizontalAlignment.Center;
t2.Text = "0";
Grid.SetRow(t2, 1);
g.Children.Add(t2);
TextBlock t3 = new TextBlock();
t3.Height = 28;
t3.HorizontalAlignment = HorizontalAlignment.Right;
t3.Text = "2";
Grid.SetRow(t3, 1);
g.Children.Add(t3);
theGrid.Children.Add(g);
}
我忽略了什么?