0

Windows 8エミュレーターを使用してスナップ状態に入るにはどうすればよいですか?Windows 8ストアから、ソフトウェアがスナップモードでのみクラッシュするという通知を受け取りました。モードを切り替えるとソフトウェアがクラッシュする理由を誰かが知っていますか?これが私の背後にあるコードです:

namespace MenuFinderWin8.Pages
{

public sealed partial class RestaurantHomePage : MenuFinderWin8.Common.LayoutAwarePage
{
    MenuFinderAppServiceClient serviceClient;
    RestaurantRepository repository;
    Geolocator _geolocator = null;
    ObservableCollection<RestaurantLocation> items;

    public RestaurantHomePage()
    {
        this.InitializeComponent();
        if (!Network.IsNetwork())
        {
            return;
        }
        repository = new RestaurantRepository();
        serviceClient = new MenuFinderAppServiceClient();
        _geolocator = new Geolocator();
        items = new ObservableCollection<RestaurantLocation>();
        BindData();
    }

    void btnAbout_Click(object sender, RoutedEventArgs e)
    {
        Flyout f = new Flyout();
        LayoutRoot.Children.Add(f.HostPopup); // add this to some existing control in your view like the root visual

        // remove the parenting during the Closed event on the Flyout
        f.Closed += (s, a) =>
        {
            LayoutRoot.Children.Remove(f.HostPopup);
        };

        // Flyout is a ContentControl so set your content within it.
        SupportUserControl userControl = new SupportUserControl();
        userControl.UserControlFrame = this.Frame;
        f.Content = userControl;
        f.BorderBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 223, 58, 51));
        f.Width = 200;
        f.Height = 200;
        f.Placement = PlacementMode.Top;
        f.PlacementTarget = sender as Button; // this is an UI element (usually the sender)

        f.IsOpen = true;
    }

    void btnSearch_Click(object sender, RoutedEventArgs e)
    {
        Flyout f = new Flyout();
        LayoutRoot.Children.Add(f.HostPopup); // add this to some existing control in your view like the root visual

        // remove the parenting during the Closed event on the Flyout
        f.Closed += (s, a) =>
        {
            LayoutRoot.Children.Remove(f.HostPopup);
        };

        // Flyout is a ContentControl so set your content within it.
        RestaurantSearchUserControl userControl = new RestaurantSearchUserControl();
        userControl.UserControlFrame = this.Frame;
        f.Content = userControl;
        f.BorderBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 223, 58, 51));
        f.Width = 600;
        f.Height = 400;
        f.Placement = PlacementMode.Top;
        f.PlacementTarget = sender as Button; // this is an UI element (usually the sender)

        f.IsOpen = true;

    }

    void btnViewFavorites_Click(object sender, RoutedEventArgs e)
    {
        App.DataMode = Mode.SavedRestaurant;
        if (repository.GetGroupedRestaurantsFromDatabase().Count() == 0)
        {
            MessageDialog messageDialog = new MessageDialog("You have no saved restaurants.", "No Restaurants");
            messageDialog.ShowAsync();
        }
        else
        {
            this.Frame.Navigate(typeof(RestaurantSearchDetails));
        }
    }

    private async void BindData()
    {
        try
        {
            items = await serviceClient.GetSpecialRestaurantsAsync();



            List<RestaurantLocation> myFavs = repository.GetRestaurantLocations();
            foreach (var a in myFavs)
            {
                items.Add(a);
            }

            this.DefaultViewModel["Items"] = items;
        }
        catch (Exception)
        {
            MessageDialog messsageDialog = new MessageDialog("The MenuFinder service is unavailable at this time or you have lost your internet connection. If your internet is OK, please check back later.", "Unavailable");
            messsageDialog.ShowAsync();
            btnAbout.IsEnabled = false;
            btnSearch.IsEnabled = false;
            btnViewFavorites.IsEnabled = false;
        }
        myBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }


    /// <summary>
    /// Populates the page with content passed during navigation.  Any saved state is also
    /// provided when recreating a page from a prior session.
    /// </summary>
    /// <param name="navigationParameter">The parameter value passed to
    /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
    /// </param>
    /// <param name="pageState">A dictionary of state preserved by this page during an earlier
    /// session.  This will be null the first time a page is visited.</param>
    protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
    {
        // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"]
    }

    private void itemGridView_ItemClick_1(object sender, ItemClickEventArgs e)
    {
        App.CurrentRestaurantLocation = e.ClickedItem as RestaurantLocation;
        if (App.CurrentRestaurantLocation != null)
        {
            Order order = repository.AddOrder(DateTime.Now, string.Empty, App.CurrentRestaurantLocation.ID);
            App.CurrentOrder = order;
            App.DataMode = Mode.Menu;
            this.Frame.Navigate(typeof(RootViewPage));
        }
    }
}

}

4

2 に答える 2

2

「Windows8エミュレーターを使用してスナップ状態に入るにはどうすればよいですか?」への応答 -シミュレーターにスナップする最も簡単な方法は、キーボードショートカット(Windowsキー+)を使用することです。(限目)。

于 2012-12-14T19:18:54.073 に答える
1

エラーは、コードビハインドよりもXAMLにある可能性があります。テンプレートを使用したが、要素の1つで名前を削除または変更した場合、その要素を参照しているKeyFrameは要素の取得に失敗するため、例外がスローされます。

XAMLで次のようなものを検索します

<VisualState x:Name="Snapped">
                <Storyboard>...

そして、存在しない要素と等しいプロパティを持つObjectAnimationUsingKeyFramesタグを削除します。Storyboard.TargetName

エミュレータでスナップモードに入る方法については、PCの場合と同じです。アプリを上からつかみ、クリックを押しながら横にスライドするだけです。

于 2012-12-14T18:15:19.213 に答える