博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

可能发现 Silverlight Slider 控件的一个Bug

Posted on 2008-08-27 21:58  fochan  阅读(2049)  评论(6编辑  收藏  举报

     昨天用到Silverlight Slider控件,预览时却报错!是因为在XAML中设置了它的Value属性值之后,才报的错,

所以一下子定位到XAML中Value值的设置上。于是用 Minimum、Maximum、中间值赋给Value测了下,还是出现同样的问题!

把Value属性从中删除,竟然一切正常。怪事了!

     是不是受到了代码中其他控件的影响?于是今天特意新建了个项目,就单独使用Slider控件,重复前天的操作,问题重现!

以下贴上代码:

Page.xaml

 1<UserControl x:Class="SliderMaxValueTest.Page"
 2    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
 3    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 
 4    Width="400" Height="300">

 5    <Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True">
 6        <Grid.RowDefinitions>
 7            <RowDefinition Height="150" />
 8            <RowDefinition Height="*" />       
 9        </Grid.RowDefinitions>

10        <Slider Maximum="255" Minimum="0" Value="100.0" Grid.Row="0" x:Name="sld" Orientation="Vertical" MaxHeight="300" ValueChanged="Slider_ValueChanged"/>
11        <TextBlock x:Name="Val" Grid.Row="1" Width="200" />
12    </Grid>
13</UserControl>

 

Page.xaml.cs
 1namespace
 SliderMaxValueTest
 2
{
 3    public partial class
 Page : UserControl
 4    
{
 5        public
 Page()
 6        
{
 7
            InitializeComponent();
 8        }

 9
10        private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double>
 e)
11        
{
12            Val.Text =
 e.NewValue.ToString();
13        }

14    }

15}

 

预览测试网页文件时报错:
Microsoft JScript runtime error: Unhandled Error in Silverlight 2 Application AG_E_PARSER_BAD_PROPERTY_VALUE [Line: 10 Position: 157]   at System.Windows.Application.LoadComponent(Object component, Uri xamlUri)
   at SliderMaxValueTest.Page.InitializeComponent()
   at SliderMaxValueTest.Page..ctor()
   at SliderMaxValueTest.App.Application_Startup(Object sender, StartupEventArgs e)
   at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

到底出了啥问题?是Silverlight的版本Bug问题?还是其他?

 

上了博问提问了下,有幸得到TerryLee的回答:

“在Silverlight 2 Beta 2中,如果定义了ValueChanged,似乎不能给Slider的value属性在Xaml中赋初值,可能是一个Bug。”

他用了“可能”这个词,但谢谢他让我知道了引起问题的原因:“如果定义了ValueChanged,。。。”

 

刚加入的cnblog,这是写的第一篇随笔,就以这个bug开始吧:)

相关博问地址:http://space.cnblogs.com/question/2611/