SilverLight的Slider控件的学习遇到的问题
2011-05-27 11:48
246 查看
Slider控件有两个设定最大(Maximum)最小(Minimum)范围的属性,默认分别为1,0.当人为设定这两个值并在ValueChanged事件中引用了该控件就会报NoneReferenceException的错误,原因是Slider控件没有被实例化,因为我们人为的设置了最大最小属性,在过初始化方法(InitializeComponent)时触发了ValueChanged事件,这个时候Slider还没有加载完就引用了它的实例,报了错。
报错代码如下:
解决办法是把XAML文件中灰色部分去掉,c#文件中灰色注释部分打开。
报错代码如下:
XAML: <UserControl x:Class="SliderBarTest.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> <Grid.RowDefinitions> <RowDefinition Height="50"/> <RowDefinition Height="30"/> <RowDefinition Height="20"/> <RowDefinition Height="180"/> <RowDefinition Height="20"/> </Grid.RowDefinitions> <TextBlock Text="选择控件-Silder" FontSize="24" FontWeight="Bold" FontFamily="Comic Sans MS" Grid.Row="0"/> <Slider x:Name="silder1" Minimum="0" Maximum="10" Grid.Row="1" Margin="10,0,10,0" ValueChanged="silder1_ValueChanged"/> <TextBlock FontSize="15" FontFamily="Comic Sans MS" Text="silder1" Grid.Row="2" Margin="10,0,10,0" x:Name="textSlider1"/> <Slider x:Name="slider2" Minimum="1" Maximum="10" Orientation="Vertical" Grid.Row="3" Margin="10,10,370,10" ValueChanged="slider2_ValueChanged" /> <TextBlock Text="slider2" FontSize="15" FontFamily="Comic Sans MS" Grid.Row="4" Margin="10,0,10,0" x:Name="textSlider2"/> </Grid> </UserControl>
C#: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SliderBarTest { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); //silder1.ValueChanged+=new RoutedPropertyChangedEventHandler<double>(silder1_ValueChanged); //slider2.ValueChanged+=new RoutedPropertyChangedEventHandler<double>(slider2_ValueChanged); } private void silder1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { textSlider1.Text = "水平滑块的当前值为:"+silder1.Value ; } private void slider2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { textSlider2.Text = "垂直滑块的当前值为:" + slider2.Value; } } }
解决办法是把XAML文件中灰色部分去掉,c#文件中灰色注释部分打开。
相关文章推荐
- vs2010 学习Silverlight学习笔记(1):用vs2010开发Silverlight时可能遇到的问题
- Window Phone 开发 Panorama 控件学习中遇到的问题
- (记录学习android遇到的问题)使用被weight分配空间后的控件高度值画新控件出现的问题
- [Silverlight学习笔记]实现上传图片功能时遇到的问题
- 学习react遇到的问题
- Silverlight控件自适应利器UseLayoutRounding属性(解决自适应抖动问题)
- ASP.NET开发过程中遇到的问题-控件找不到
- android中使用Baidu Map遇到的问题之:移动Mapview上的放大缩小控件
- 学习opencv遇到的头疼小问题
- 学习游戏编程第一步就遇到的问题——SDK兼容性
- 学习linux中遇到的小问题记录
- # 深度学习搭建caffe框架遇到的问题汇总
- 学习遇到问题了!然后百度。
- 易语言学习中遇到的一些问题
- Python学习中常常遇到的一些问题
- 新手学习Struts2遇到的问题:There is no Action mapped for namespace / and action name . - [unknown location]
- 学习Maven 遇到的问题
- silverlight AutoCompleteBox控件的SelectionChanged的里问题解决
- 遇到.net加了验证控件的表单无法提交的问题
- 设计一个silverlight的textbox控件--silverlight(闪光)学习(1)