Универсальное приложение для Windows не может установить значение слайдера

РЕШИТЬ

Собственно, я решил проблему, удалив событие "Value_Changed" из XAML и добавив его вручную с помощью C# AFTER, установив значение ползунка. Иначе похоже, что ползунок принимает минимально возможное значение - спасибо всем

У меня есть две страницы, на одной странице есть ползунок, который должен принимать значение переменной с первой страницы.

Main.xaml.cs

public static int val;
...//Some stuff here

val = Converti.ToInt32(roamingSetting.Value["Setting"]);
...//Some stuff there

Тогда вторая страница

Second.xaml.cs

public Settings()
{
    this.InitializeComponent();
    slider.Value = Main.val;    //looks like this line does not do his job  
}
private void slider_ValueChanged(object s, RangeBaseValueChangedEventArgs e)
{
    writeToRoaming(slider.Value.Tostring());
}

Слайдер XAML

<Slider x:Name="slider" Minimum="5" Maximum="100" IsThumbToolTipEnabled="True" ValueChanged="slider_ValueChanged"/>

Дело в том, что значение ползунка никогда не устанавливается на значение настройки

2 ответа

Я воссоздал ваш сценарий, и он работает для меня, но думаю, что вы могли видеть одно из следующего:

  • нет настроек роуминга
  • используемое значение параметров роуминга выходит за пределы максимального и минимального значений, определенных для ползунка

Это может быть связано с привязкой слайдера к вашей переменной val. Но мы можем получить новое значение из аргументов событий в событии изменения значения слайда. Он запишет последние значения в настройки роуминга и решит проблему.

private void slider_ValueChanged(object s, RangeBaseValueChangedEventArgs e)
{
    writeToRoaming(e.NewValue.ToString());
}
Другие вопросы по тегам