2015-04-20 3 views
0

Я пытаюсь использовать библиотеки интерактивности и взаимодействия в приложении wpf. Мне нужно, чтобы он работал на сетке, и он работает хорошо, но теперь мне нужно это в нескольких сетках, и я не могу найти способ его повторного использования. Вот XAMLКак повторно использовать взаимодействия и интерактивность, связанные с сеткой

<Grid> 
<i:Interaction.Behaviors> 
    <ei:DataStateBehavior Binding="{Binding KeepAlive}" 
          FalseState="InactiveState" 
          TrueState="ActiveState" 
          Value="false" /> 
    </i:Interaction.Behaviors> 
    <VisualStateManager.VisualStateGroups> 
    <VisualStateGroup> 
     <VisualState x:Name="ActiveState" /> 
     <VisualState x:Name="InactiveState"> 
      <Storyboard> 
       <ObjectAnimationUsingKeyFrames 
       Storyboard.TargetName="ActiveContainer" 
       Storyboard.TargetProperty="(Control.IsEnabled)"> 
        <DiscreteObjectKeyFrame KeyTime="0:0:0"> 
         <DiscreteObjectKeyFrame.Value> 
          <system:Boolean>False</system:Boolean> 
         </DiscreteObjectKeyFrame.Value> 
        </DiscreteObjectKeyFrame> 
       </ObjectAnimationUsingKeyFrames> 
       <ObjectAnimationUsingKeyFrames 
       Storyboard.TargetName="InactiveContainer" 
       Storyboard.TargetProperty="(UIElement.Visibility)"> 
        <DiscreteObjectKeyFrame KeyTime="0"> 
         <DiscreteObjectKeyFrame.Value> 
          <Visibility>Visible</Visibility> 
         </DiscreteObjectKeyFrame.Value> 
        </DiscreteObjectKeyFrame> 
       </ObjectAnimationUsingKeyFrames> 
      </Storyboard> 
     </VisualState> 
    </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 

<Border> 
    <Grid> 
    Content comes here, Texboxes, labels when active or inactive etc. 
    </Grid>  
</Border> 
</Grid> 

Он отлично работает, но как я могу реорганизовать код выше, так что я могу повторно использовать точно такое же поведение на нескольких сетках?

Спасибо

ответ

0

Несколько подхода сразу придумал: стиль или ресурса. Но поведение Blend не может работать при объявлении в ресурсах. Вы можете использовать прикрепленное свойство. См: How to add a Blend Behavior in a Style Setter

0

Я создал родовое поведение, из которого можно было бы просто унаследовать и добавить к вашему стилю

увидеть мой ответ ниже

https://stackoverflow.com/a/31292989/4711853

 Смежные вопросы

  • Нет связанных вопросов^_^