【问题标题】:Attempting to change inkcanvas pen size using slider C# XAML尝试使用滑块 C# XAML 更改 inkcanvas 笔大小
【发布时间】:2014-03-31 13:22:51
【问题描述】:

我有一个值为 1-10 的滑块。和一个默认高度和宽度为 1px 的 inkCanvas。我正在尝试根据滑块的值更改高度和宽度。这是我尝试过的,但它给了我这个错误:“对象引用未设置为对象的实例”。 这个错误是什么意思?

编辑:包含 xaml 代码:

【问题讨论】:

    标签: c# wpf visual-studio-2010 xaml slider


    【解决方案1】:

    我认为您必须在 penSizeSlider_ValueChanged 中包含代码才能更改 penSizes.SelectedValue。 因此,您需要在 XAML 代码中从 <Slider..../> 中删除 Value="1" 部分并在后面的代码中设置值,因为这将在您有机会初始化 penSize 组合框之前触发 penSizeSlider_ValueChanged 事件(当您仅在Window_Loaded 事件中设置Items of penSize)。或者您可以在 XAML 中而不是在后面的代码中初始化 penSize.Items。然后再试一次。

    所以你需要:

    1. 从 XAML 中的 <Slider..../> 中删除 Value="1" 部分

    2. 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:最好自己设置断点调试。

    【讨论】:

      【解决方案2】:

      该错误意味着在您的代码中的某处,您正在使用尚未初始化的对象。尝试调试以找出是哪一个。

      【讨论】:

      • 我不明白 上面的代码 sn-p 包含我正在使用的大部分代码。我在Window_Loaded 上设置高度和宽度的默认值似乎没有问题。
      • 你的那部分代码没有问题,我想看看你完整的xaml和后面的代码,只是为了自己调试。你所提供的没有给我任何错误,而且似乎工作正常。改变滑块,改变笔的大小。您必须有其他原因导致错误显示。
      • 谢谢,我将 xaml 包含在我的问题中。
      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多