В качестве примера в моем приложении WPF приведен следующий код XAML
<StackPanel Height="23" Name="MSpanel" Orientation="Horizontal" Width="138" Margin="37,13,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" >
<TextBox Height="23" Name="MTBox" Width="120" Text="0" />
<ScrollBar Height="23" Name="MSBar" Width="18" TouchUp="SBar_TouchUp" />
</StackPanel>
<StackPanel Height="23" Name="CSPanel" Orientation="Horizontal" Width="138" Margin="37,41,0,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<TextBox Height="23" Name="CTBox" Width="120" Text="0" />
<ScrollBar Height="23" Name="CSBar" Width="18" TouchUp="SBar_TouchUp" />
</StackPanel>
У меня есть эта функция:
private void SBar_TouchUp(object sender, TouchEventArgs e)
{
//what goes here?
//siblings.getFirst('textbox').text += 1;
}
То, что я надеялся сделать, это иметь 1 функцию, которая управляет этими «псевдо» числовыми подъемами в WPF. Если был какой-то способ иметь унифицированную функцию, которая могла бы ссылаться на одноуровневое текстовое поле, так что я должен написать его только один раз. Это было бы идеально.
Я очень хорошо знаком с jQuery, и XAML выглядит как HTML DOM, ... Есть ли способ просмотреть дерево?
Я понимаю, что существуют доступные для загрузки числовые подъемы. Эту идею, я считаю, было бы полезно узнать и о будущем в других начинаниях. Спасибо.
Решение, которое сработало!
private void SBar_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (e.NewValue == 0) return; //abort here, no change
ScrollBar sb = (ScrollBar)sender;
StackPanel sp = (StackPanel)sb.Parent;
TextBox tb = (TextBox)sp.Children[0];
int change = e.NewValue < 0 ? 1 : -1;
sb.Value = 0; //this will invoke this function again
tb.Text = (Convert.ToInt32(tb.Text) + change).ToString();
}