1

Windows ユニバーサル 8.1 にスライダーを配置しようとしていますが、何が必要かわかりません。私のエラーは次のとおりです。

Exception thrown: 'Windows.UI.Xaml.Markup.XamlParseException' in Mead Must Maker.Windows.exe
WinRT information: Failed to assign to property 'Windows.UI.Xaml.Controls.Primitives.RangeBase.Minimum'. [Line: 22 Position: 182]
The program '[1260] Mead Must Maker.Windows.exe' has exited with code -1073741189 (0xc000027b). 

このコードの何が問題なのですか? これは22行目です:

<Slider x:Name="volumeSlider" HorizontalAlignment="Left" Height="50" Margin="50,400,0,0" VerticalAlignment="Top" Width="550" Maximum="10" LargeChange="1" Minimum="1" SmallChange="0.5" StepFrequency="0.5" TickFrequency="1" TickPlacement="Outside" Value="5" FontFamily="Global User Interface" ValueChanged="volumeSlider_ValueChanged"/>

イベント ハンドラは次のとおりです。

private void volumeSlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
    {
        volume = float.Parse(volumeSlider.Value.ToString());
        volumeTextBox.Text = volume.ToString();
        Calculate();
    }
4

1 に答える 1

0

コードにいくつかの問題があります。以下は、MainPage.xaml からのコードです。

...Value="5" FontFamily="Global User Interface" ValueChanged="volumeSlider_ValueChanged"/>

Slider コントロールでは、Value="5" および ValueChanged="volumeSlider_ValueChanged" を設定します。コード Value="5" によって関数 (volumeSlider_ValueChanged) がすぐに実行されることに注意してください。ただし、現時点では Slider インスタンスは作成されていません。したがって、volumeSlider_ValueChanged 関数をデバッグすると、volumeSlider が null 参照であることがわかり、NullException が発生します。次のようにコードを調整できます。

private void volumeSlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
        {
            if (volumeSlider != null) {
                var volume = float.Parse(volumeSlider.Value.ToString());
                volumeTextBox.Text = volume.ToString();
            }
        }
于 2016-09-14T08:59:10.390 に答える