locked
Как отписаться от открытия аппбара при нажатии пробела? RRS feed

  • Вопрос

  • Все нажатия пробела при вводе текста на странице, перехватываются и выскакивает аппбар.. как вылечить? 
    31 августа 2013 г. 12:18

Ответы

  • Странная у Вас разметка. Вообще если курсор установлен в TextBox и Вы нажимаете пробел, то сработает событие Button_Click, у вас в Button_Click ничто не поднимает AppBar?
    • Помечено в качестве ответа CheeGer 2 сентября 2013 г. 12:39
    2 сентября 2013 г. 6:18

Все ответы

  • Вы текст в обычный TextBox вводите?

    Если да, то не подключены ли к нему какие-то аттачед свойства или же behavior?

    Или же может прослушиваются нажатия кнопок на странице и дело не в текстбоксе, поищите подписку на KeyUp / KeyDown. К примеру:

    Window.Current.CoreWindow.KeyUp += this.OnCoreWindowKeyUp;//где-то подписываемся.
    
    private void OnCoreWindowKeyUp(CoreWindow sender, KeyEventArgs args)
            {
                if (args.VirtualKey == Windows.System.VirtualKey.Space)
                {
                    this.bottomAppBar.IsOpen = true;
                }
            }


    • Изменено Oleg Kurzov 31 августа 2013 г. 18:23
    31 августа 2013 г. 18:23
  • На счёт аттачед свойств и behaviorа затрудняюсь ответить...

    Вот кусок кода с TextBoxом:

     <Page.Resources>
            <DataTemplate
                x:Key="DTemplate">
                <Button
                    Width="200"
                    Height="100"
                    Click="Button_Click"
                    Tag="{Binding Tag}"
                    Background="{Binding Color}" IsEnabled="{Binding Enabled}">
                    <Grid>
                    <TextBox
                        TextChanged="TextBox_TextChanged"
                        LostFocus="TextBox_LostFocus"
                        VerticalAlignment="Center"
                        HorizontalAlignment="Center"
                        Text="{Binding Text}"
                        Foreground="#FF1428EA"
                        FontSize="12" TextWrapping="Wrap" />
                        <TextBlock
                        VerticalAlignment="Bottom"
                        HorizontalAlignment="Right"
                        Text="{Binding Dt}"
                        Foreground="Red"
                        FontSize="8" TextWrapping="Wrap" />
                    </Grid>
                </Button>
            </DataTemplate>
        </Page.Resources>
    KeyUp / KeyDown в проекте не находит...


    2 сентября 2013 г. 5:43
  • Странная у Вас разметка. Вообще если курсор установлен в TextBox и Вы нажимаете пробел, то сработает событие Button_Click, у вас в Button_Click ничто не поднимает AppBar?
    • Помечено в качестве ответа CheeGer 2 сентября 2013 г. 12:39
    2 сентября 2013 г. 6:18
  • Спасибо.. действительно проблема в кнопке была.. убрал её.. вот только теперь разобраться не могу как клики по текстбоксу отлавливать?  
    2 сентября 2013 г. 13:47
  • Опишите подробней что Вам нужно от тексбокса.

    В любом случае есть события Tapped и тд.

    2 сентября 2013 г. 14:23
  • Хочу чтоб при клике в область текстбокса срабатывало какое-нибудь событие(как при клике на кнопку).. Tapped у меня почему-то не срабатывает....   
    2 сентября 2013 г. 16:18
  • Проверил, Tapped если подписаться в XAML действительно не работает. Но работает такая подписка:

    private void SplitPage1_Loaded(object sender, RoutedEventArgs e)
            {
                this.tbox.AddHandler(TappedEvent, new TappedEventHandler(this.OnTapped), true);
            }
    
            private void OnTapped(object sender, TappedRoutedEventArgs e)
            {
    
            }

    2 сентября 2013 г. 17:32
  • А почему может не работать подписка в XAML?

    Просто я не знаю как, при такой разметке, в коде выйти на этот текстбокс.. просто this.tbox не прокатит, он же у меня находится в ресурсах и внутри DataTemplate...

    5 сентября 2013 г. 12:00