2010-05-24 24 views
5

Loại câu hỏi nhanh: Có thể kích hoạt chế độ xem từ XAML không? Tôi chỉ có thể kích hoạt một từ CS, sử dụng phương thức VisualStateManager.GotoState(). Điều này sẽ khắc phục một số vấn đề MVVM của tôi nếu nó dễ dàng có thể.WPF/Silverlight States - Kích hoạt từ XAML?

Cảm ơn

Trả lời

7

Nếu bạn đã quen thuộc với các hành vi Blend, trigger, và hành động có một GoToStateAction mà là một phần của không gian tên Microsoft.Expression.Interactivity.Core. Bạn sẽ phải tham khảo các hội đồng tương tác là một phần của Blend SDK.

Khi bạn đã thiết lập các tham chiếu dễ dàng như việc chỉ định GoToStateAction phản ứng với một loại trình kích hoạt nào đó ... tất cả trong XAML. Dưới đây là một ví dụ mà cháy các hành động tắt của sự kiện Loaded sử dụng một EventTrigger:

<UserControl x:Class="SilverlightApplication1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
    xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"> 
    <Grid x:Name="LayoutRoot"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="Loaded"> 
       <ic:GoToStateAction StateName="MyVisualState"/> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
     ... 
    </Grid> 
</UserControl> 

Thông tin thêm và hướng dẫn về các hành động cụ thể GoToState here.

EDIT: Câu trả lời này dành riêng cho Silverlight, không chắc chắn nếu điều này có sẵn trong WPF.

+0

Tôi đang sử dụng Blend 4, tôi có cần SDK Blend 3 không? --- Không. – Peanut

+0

Điều này hoạt động hoàn hảo. Cảm ơn nhiều!!! – Peanut

Các vấn đề liên quan