Tôi đã xác định hai trạng thái sau đây trong Expression Blend. Tôi đã cố gắng để làm theo hướng dẫn this nhưng tôi cảm thấy như nó để lại cho tôi treo khi tôi cần thông tin về cách thức và thời điểm thay đổi trạng thái.Làm thế nào để thay đổi VisualState trong WP7
Theo hướng dẫn tôi đính kèm một hành vi (tôi giả sử "GotoState") để UserControl
tôi - Đáng tiếc là tôi không nghĩ rằng tôi thực sự có một User Control
- và ngay cả khi tôi đã làm, tôi phải chứ phải đính kèm một hành vi cho cả hai số PortraitState
và LandscapeState
của tôi?
Có vẻ như tôi có thể đính kèm GotoState
vào phần tử LayoutRoot
của tôi. Vì vậy, tôi có đính kèm hành vi của tôi với điều đó trong cả hai tiểu bang? Mọi sự trợ giúp sẽ rất được trân trọng.
* chỉnh sửa: Tôi đã chơi xung quanh trong tệp xaml.cs của mình và đã tìm ra rằng đây có thể là cách để làm điều đó theo chương trình. khi gỡ lỗi và thay đổi hướng tôi nhập trường hợp chuyển đổi của mình và tìm hướng chính xác. Nhà nước, tuy nhiên, không bao giờ được chuyển. Tôi đang làm gì sai?
protected override void OnOrientationChanged(OrientationChangedEventArgs e)
{
switch (e.Orientation)
{
case PageOrientation.Landscape:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "LandscapeState", useTransitions: true);
break;
case PageOrientation.LandscapeRight:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "LandscapeState", useTransitions: true);
break;
case PageOrientation.LandscapeLeft:
ExtendedVisualStateManager.GoToElementState(root:LayoutRoot, stateName: "LandscapeState", useTransitions: true);
break;
case PageOrientation.Portrait:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "PortraitState", useTransitions: true);
break;
case PageOrientation.PortraitUp:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "PortraitState", useTransitions: true);
break;
case PageOrientation.PortraitDown:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "PortraitState", useTransitions: true);
break;
default:
break;
}
}
edit2: Khi cố gắng trên Dường như GotoElementState trả về false và, theo MSDN: "trả về true nếu kiểm soát chuyển thành công sang trạng thái mới, nếu không, false"
Bây giờ tôi còn lại với câu hỏi: Điều gì có thể khiến quá trình chuyển đổi trạng thái của tôi thất bại?