2017-01-26 4 views
0

У меня есть небольшая проблема, которая кажется простой, но я не могу понять, как ее решить. В Visual Studio я сделал это приложение с WPF и внутри сетки с строками и столбцами я разместил несколько кнопок. Теперь каждый раз, когда я запускаю приложение, первая кнопка в первой строке светится, как если бы она была нажата. Я думаю, что это выглядит странно, и я бы хотел, чтобы моя кнопка выглядела как другие кнопки. Есть ли возможность остановить это? Заранее спасибо, я ценю любую помощь!WPF: кнопка загорается при запуске приложения

+0

Может быть, что первая кнопка ориентирована? Когда вы нажимаете Tab, влияет ли эффект свечения на другую кнопку? – wkl

+0

Да, я думаю, что это все. Кнопка запускается по умолчанию при запуске приложения. Но есть ли еще возможность установить фокус в другом месте? – MaChaToc

+1

Вы можете попробовать [this] (http://stackoverflow.com/a/1343970/4011717) или установить 'Button.Focusable' в false. Изменение «TabIndex» также может решить проблему. Все эти методы имеют разные эффекты, поэтому тщательно подбирайте ... – wkl

ответ

0

Если описанное вами поведение является сфокусированной анимацией, вы можете установить фокус в другом элементе управления с помощью функции Control.Focus().

another_control.Focus(); 

Вы можете проверить, если это целенаправленный стиль, что мешает вам ударять вкладку, чтобы установить фокус на следующий элемент управления.

+0

Ну, я бы не хотел, чтобы сфокусировался в начале – MaChaToc

0

Вы должны использовать Style для кнопок, В Style установить все свойства вашей кнопки, как Background, Foreground, и вы также можете назначить triggers для различных событий на кнопках. Это предотвратит непрерывное мигание кнопки.

Ниже приведен пример выше (по умолчанию я устанавливаю синий цвет кнопок)

В XAML

<Page> 
     <Page.Resources> 
       <Style TargetType="{x:Type Button}" x:Key="NonFocusButton"> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="{x:Type Button}"> 
          <Border Name="Border" 
         Background="Blue" 
         BorderBrush="Blue"> 
          </Border> 
          <ControlTemplate.Triggers> 
           <Trigger Property="Button.IsPressed" Value="True"> 
            <Setter TargetName="Border" Property="BorderBrush" Value="Blue" /> 
           </Trigger> 
           <Trigger Property="IsMouseOver" Value="true"> 
            <Setter TargetName="Border" 
           Property="Background" Value="Blue" /> 
           </Trigger> 
          </ControlTemplate.Triggers> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 

     <Button x:Name"myButton" Style="{StaticResource NonFocusButton}" /> //Assign style here 
     </Page.Resources> 
    </Page> 
Смежные вопросы