2013-10-08 2 views
0

У меня возник вопрос. Я создал RichTextBox XAML (тот, у которого нет свойства .text, поскольку, похоже, два разных). Теперь я хочу вызвать функцию из моего .cs всякий раз, когда текстовое поле сфокусировано, а другое - когда оно теряет фокус. я уже разобрался, как вызвать анимацию так:XAML Trigger C# Функция on isFoucsed

<Style x:Key="adressBar" TargetType="{x:Type RichTextBox}"> 
     <Setter Property="Background" Value="transparent"></Setter> 
     <Style.Triggers> 
      <Trigger Property="IsFocused" Value="True"> 
       <Trigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <ColorAnimation Duration="0:0:0.2" Storyboard.TargetProperty="(TextBox.Background).(SolidColorBrush.Color)" To="#FFF5F5FE" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.EnterActions> 
       <Trigger.ExitActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <ColorAnimation Duration="0:0:0.2" Storyboard.TargetProperty="(TextBox.Background).(SolidColorBrush.Color)" To="transparent" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.ExitActions> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

Но я понятия не имею, как вызвать функцию внутри там. функция в основном выглядит следующим образом:

public void doStuff(){...} 

не нужно разбирать аргументы! :)

ответ

0

Вы можете просто прикрепить обработчики к GotFocus и LostFocus событий:

В XAML:

<DataGrid GotFocus="DataGrid_GotFocus" LostFocus="DataGrid_LostFocus" /> 

В коде позади:

private void DataGrid_LostFocus(object sender, RoutedEventArgs e) 
{ 
    doStuff(); 
} 

private void DataGrid_GotFocus(object sender, RoutedEventArgs e) 
{ 
    doStuff(); 
} 
+0

Хорошо, что работает отлично! :) Большое спасибо! – Escapado

+0

Добро пожаловать в StackOverflow. Этот сайт работает определенным образом, и я хотел бы обратить ваше внимание на страницу [help] (http://stackoverflow.com/help) и, в частности, [Что делать, если кто-то отвечает на мой вопрос?] (Http : //stackoverflow.com/help/someone-answers). – Sheridan