Silverlight为什么这不起作用

时间:2011-04-22 09:22:02

标签: silverlight

我正在尝试创建一个滑块(没有绑定)。 目前我这样做了:

的Xaml:

<Slider Height="68" HorizontalAlignment="Left" Margin="52,45,0,0" x:Name="slider1" VerticalAlignment="Top" Width="256" Minimum="1" Maximum="40" Value="10" ValueChanged="slider1_ValueChanged" />
    <TextBlock x:Name="textBlock1" Margin="52,120,0,0" Text="Slide it!" ></TextBlock>

在我的cs中:

private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
  textBloxk1.FontSize = slider1.Value;
}

但是Silverlight页面一直在加载并且不会显示滑块,任何人都知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

可能在第一个ValueChanged事件中,slider1和textblock1仍然为null。 试试这个:

private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
            if (textBlock1 != null && slider1 != null)
            {
                textBlock1.FontSize = slider1.Value;
            }
}

答案 1 :(得分:0)

看看你的Xaml ..你将值设置为10 Value="10" ...但当时textBlock不存在..小心..

当解析器解析Xaml时,它首先创建Slider,然后将所有值设置为slider(并触发所有附加事件),然后才创建TextBlock ...

所以将你的代码更改为此,并且永远都应该没问题。

    private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        if (textBlock1 != null && slider1 != null)
        {
            textBlock1.FontSize = slider1.Value;
        }
    }