【发布时间】:2014-03-31 13:22:51
【问题描述】:
我有一个值为 1-10 的滑块。和一个默认高度和宽度为 1px 的 inkCanvas。我正在尝试根据滑块的值更改高度和宽度。这是我尝试过的,但它给了我这个错误:“对象引用未设置为对象的实例”。 这个错误是什么意思?
编辑:包含 xaml 代码:
【问题讨论】:
标签: c# wpf visual-studio-2010 xaml slider
我有一个值为 1-10 的滑块。和一个默认高度和宽度为 1px 的 inkCanvas。我正在尝试根据滑块的值更改高度和宽度。这是我尝试过的,但它给了我这个错误:“对象引用未设置为对象的实例”。 这个错误是什么意思?
编辑:包含 xaml 代码:
【问题讨论】:
标签: c# wpf visual-studio-2010 xaml slider
我认为您必须在 penSizeSlider_ValueChanged 中包含代码才能更改 penSizes.SelectedValue。
因此,您需要在 XAML 代码中从 <Slider..../> 中删除 Value="1" 部分并在后面的代码中设置值,因为这将在您有机会初始化 penSize 组合框之前触发 penSizeSlider_ValueChanged 事件(当您仅在Window_Loaded 事件中设置Items of penSize)。或者您可以在 XAML 中而不是在后面的代码中初始化 penSize.Items。然后再试一次。
所以你需要:
从 XAML 中的 <Slider..../> 中删除 Value="1" 部分
将Window_Loaded 更改为:
private void Window_Loaded (object sender, RoutedEventArgs e)
{
for (var i = 1; i <= 10; i++)
{
penSizes.Items.Add(i);
}
penSizes.SelectedIndex = 0;
//set slider's value here
penSizeSlider.Value=1;
//...rest code
}
PS:最好自己设置断点调试。
【讨论】:
该错误意味着在您的代码中的某处,您正在使用尚未初始化的对象。尝试调试以找出是哪一个。
【讨论】:
Window_Loaded 上设置高度和宽度的默认值似乎没有问题。