当前位置: 首页>>代码示例>>C#>>正文


C# Frame.GetValue方法代码示例

本文整理汇总了C#中Windows.UI.Xaml.Controls.Frame.GetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Frame.GetValue方法的具体用法?C# Frame.GetValue怎么用?C# Frame.GetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Windows.UI.Xaml.Controls.Frame的用法示例。


在下文中一共展示了Frame.GetValue方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RegisterFrame

        /// <summary>
        /// Registers a <see cref="Frame"/> instance to allow its navigation history to be saved to
        /// and restored from <see cref="SessionState"/>.  Frames should be registered once
        /// immediately after creation if they will participate in session state management.  Upon
        /// registration if state has already been restored for the specified key
        /// the navigation history will immediately be restored.  Subsequent invocations of
        /// <see cref="RestoreAsync"/> will also restore navigation history.
        /// </summary>
        /// <param name="frame">An instance whose navigation history should be managed by
        /// <see cref="SuspensionManager"/></param>
        /// <param name="sessionStateKey">A unique key into <see cref="SessionState"/> used to
        /// store navigation-related information.</param>
        /// <param name="sessionBaseKey">An optional key that identifies the type of session.
        /// This can be used to distinguish between multiple application launch scenarios.</param>
        public static void RegisterFrame(Frame frame, String sessionStateKey, String sessionBaseKey = null)
        {
            if (frame.GetValue(FrameSessionStateKeyProperty) != null)
            {
                throw new InvalidOperationException("Frames can only be registered to one session state key");
            }

            if (frame.GetValue(FrameSessionStateProperty) != null)
            {
                throw new InvalidOperationException("Frames must be either be registered before accessing frame session state, or not registered at all");
            }

            if (!string.IsNullOrEmpty(sessionBaseKey))
            {
                frame.SetValue(FrameSessionBaseKeyProperty, sessionBaseKey);
                sessionStateKey = sessionBaseKey + "_" + sessionStateKey;
            }

            // Use a dependency property to associate the session key with a frame, and keep a list of frames whose
            // navigation state should be managed
            frame.SetValue(FrameSessionStateKeyProperty, sessionStateKey);
            _registeredFrames.Add(new WeakReference<Frame>(frame));

            // Check to see if navigation state can be restored
            RestoreFrameNavigationState(frame);
        }
开发者ID:redzmey,项目名称:App1,代码行数:40,代码来源:SuspensionManager.cs

示例2: SessionStateForFrame

        /// <summary>
        /// Provides storage for session state associated with the specified <see cref="Frame"/>.
        /// Frames that have been previously registered with RegisterFrame have
        /// their session state saved and restored automatically as a part of the global
        /// SessionState.  Frames that are not registered have transient state
        /// that can still be useful when restoring pages that have been discarded from the
        /// navigation cache.
        /// </summary>
        /// <remarks>Apps may choose to rely on <see cref="LayoutAwarePage"/> to manage
        /// page-specific state instead of working with frame session state directly.</remarks>
        /// <param name="frame">The instance for which session state is desired.</param>
        /// <returns>A collection of state subject to the same serialization mechanism as
        /// SessionState.</returns>
        public static Dictionary<String, Object> SessionStateForFrame(Frame frame)
        {
            var frameState = (Dictionary<String, Object>)frame.GetValue(FrameSessionStateProperty);

            if (frameState == null)
            {
                var frameSessionKey = (String)frame.GetValue(FrameSessionStateKeyProperty);
                if (frameSessionKey != null)
                {
                    // Registered frames reflect the corresponding session state
                    if (!SessionState.ContainsKey(frameSessionKey))
                    {
                        SessionState[frameSessionKey] = new Dictionary<String, Object>();
                    }
                    frameState = (Dictionary<String, Object>)SessionState[frameSessionKey];
                }
                else
                {
                    // Frames that aren't registered have transient state
                    frameState = new Dictionary<String, Object>();
                }
                frame.SetValue(FrameSessionStateProperty, frameState);
            }
            return frameState;
        }
开发者ID:miniBill,项目名称:ImageSorter,代码行数:38,代码来源:SuspensionManager.cs

示例3: RegisterFrame

        public static void RegisterFrame(Frame frame, string sessionStateKey, string sessionBaseKey = null)
        {
            if (frame.GetValue(FrameSessionStateKeyProperty) != null)
            {
                throw new InvalidOperationException("Frames can only be registered to one session state key");
            }

            if (frame.GetValue(FrameSessionStateProperty) != null)
            {
                throw new InvalidOperationException("Frames must be either be registerd before accessing frame session staet, or not registered at all");
            }

            if (!string.IsNullOrEmpty(sessionBaseKey))
            {
                frame.SetValue(FrameSessionBaseKeyProperty, sessionBaseKey);
                sessionStateKey = sessionStateKey + "_" + sessionStateKey;
            }

            frame.SetValue(FrameSessionStateKeyProperty, sessionStateKey);
            _registeredFrames.Add(new WeakReference<Frame>(frame));

            RestoreFrameNavigationState(frame);
        }
开发者ID:josemoreta,项目名称:TestAgricolaCounterSolution,代码行数:23,代码来源:SuspensionManager.cs

示例4: UnregisterFrame

 /// <summary>
 /// Hebt die Verknüpfung eines <see cref="Frame"/>, der zuvor durch <see cref="RegisterFrame"/> registriert wurde,
 /// mit <see cref="SessionState"/> auf.  Alle zuvor erfassten Navigationszustände werden
 /// entfernt.
 /// </summary>
 /// <param name="frame">Eine Instanz, deren Navigationsverlauf nicht mehr
 /// verwaltet werden soll.</param>
 public static void UnregisterFrame(Frame frame)
 {
   // Sitzungszustand und Rahmen aus der Liste der Rahmen entfernen, deren Navigationszustand
   // gespeichert wird (gemeinsam mit allen schwachen Verweisen, die nicht mehr erreichbar sind)
   SessionState.Remove((String)frame.GetValue(FrameSessionStateKeyProperty));
   _registeredFrames.RemoveAll((weakFrameReference) =>
   {
     Frame testFrame;
     return !weakFrameReference.TryGetTarget(out testFrame) || testFrame == frame;
   });
 }
开发者ID:imifos,项目名称:Termserver,代码行数:18,代码来源:SuspensionManager.cs

示例5: UnregisterFrame

 /// <summary>
 /// Disassociates a <see cref="Frame"/> previously registered by <see cref="RegisterFrame"/>
 /// from <see cref="SessionState"/>.  Any navigation state previously captured will be
 /// removed.
 /// </summary>
 /// <param name="frame">An instance whose navigation history should no longer be
 /// managed.</param>
 public static void UnregisterFrame(Frame frame)
 {
     // Remove session state and remove the frame from the list of frames whose navigation
     // state will be saved (along with any weak references that are no longer reachable)
     SessionState.Remove((String)frame.GetValue(FrameSessionStateKeyProperty));
     _registeredFrames.RemoveAll((weakFrameReference) =>
     {
         Frame testFrame;
         return !weakFrameReference.TryGetTarget(out testFrame) || testFrame == frame;
     });
 }
开发者ID:TREEDWELLER,项目名称:qtree-samples,代码行数:18,代码来源:SuspensionManager.cs

示例6: SessionStateForFrame

        /// <summary>
        /// Permet de stocker l'état de session associé au <see cref="Frame"/> spécifié.
        /// L'état de session des frames inscrits précédemment à l'aide de <see cref="RegisterFrame"/> est
        /// enregistré et restauré automatiquement dans le cadre du
        /// <see cref="SessionState"/> global. Les frames qui ne sont pas inscrits ont un état transitoire
        /// qui peut néanmoins être utile lors de la restauration de pages qui ont été supprimées du
        /// cache de navigation.
        /// </summary>
        /// <remarks>Les applications peuvent utiliser <see cref="LayoutAwarePage"/> pour gérer
        /// l'état spécifique aux pages, au lieu de gérer directement l'état de session de frames.</remarks>
        /// <param name="frame">Instance pour laquelle l'état de session est requis.</param>
        /// <returns>Collection d'états pour lequel est utilisé le même mécanisme de sérialisation que
        /// <see cref="SessionState"/>.</returns>
        public static Dictionary<String, Object> SessionStateForFrame(Frame frame)
        {
            var frameState = (Dictionary<String, Object>)frame.GetValue(FrameSessionStateProperty);

            if (frameState == null)
            {
                var frameSessionKey = (String)frame.GetValue(FrameSessionStateKeyProperty);
                if (frameSessionKey != null)
                {
                    // Les frames inscrits reflètent l'état de session correspondant
                    if (!_sessionState.ContainsKey(frameSessionKey))
                    {
                        _sessionState[frameSessionKey] = new Dictionary<String, Object>();
                    }
                    frameState = (Dictionary<String, Object>)_sessionState[frameSessionKey];
                }
                else
                {
                    // Les frames non inscrits ont un état transitoire
                    frameState = new Dictionary<String, Object>();
                }
                frame.SetValue(FrameSessionStateProperty, frameState);
            }
            return frameState;
        }
开发者ID:CasaTeam,项目名称:MetroExplorer,代码行数:38,代码来源:SuspensionManager.cs

示例7: RegisterFrame

        /// <summary>
        /// Inscrit une instance de <see cref="Frame"/> pour que son historique de navigation puisse être enregistré dans
        /// et restauré à partir de <see cref="SessionState"/>. Les frames doivent être inscrits une seule fois,
        /// immédiatement après la création s'ils doivent participer à la gestion de l'état de session. Lors de
        /// l'inscription, si l'état a déjà été restauré pour la clé spécifiée,
        /// l'historique de navigation est immédiatement restauré. Les appels ultérieurs de
        /// <see cref="RestoreAsync"/> restaurent également l'historique de navigation.
        /// </summary>
        /// <param name="frame">Instance dont l'historique de navigation doit être géré par
        /// <see cref="SuspensionManager"/></param>
        /// <param name="sessionStateKey">Clé unique dans <see cref="SessionState"/> utilisée pour
        /// enregistrer des informations relatives à la navigation.</param>
        public static void RegisterFrame(Frame frame, String sessionStateKey)
        {
            if (frame.GetValue(FrameSessionStateKeyProperty) != null)
            {
                throw new InvalidOperationException("Frames can only be registered to one session state key");
            }

            if (frame.GetValue(FrameSessionStateProperty) != null)
            {
                throw new InvalidOperationException("Frames must be either be registered before accessing frame session state, or not registered at all");
            }

            // Utilise une propriété de dépendance pour associer la clé de session à un frame et conserver une liste des frames dont
            // l'état de navigation doit être géré
            frame.SetValue(FrameSessionStateKeyProperty, sessionStateKey);
            _registeredFrames.Add(new WeakReference<Frame>(frame));

            // Vérifie si l'état de navigation peut être restauré
            RestoreFrameNavigationState(frame);
        }
开发者ID:CasaTeam,项目名称:MetroExplorer,代码行数:32,代码来源:SuspensionManager.cs

示例8: RegisterFrame

    /// <summary>
    /// Registriert eine <see cref="Frame"/>-Instanz, um den zugehörigen Navigationsverlauf mithilfe von
    /// <see cref="SessionState"/> speichern und wiederherstellen zu können.  Rahmen sollten direkt nach der Erstellung
    /// registriert werden, wenn diese Bestandteil der Verwaltung des Sitzungszustands sind.  Wenn der
    /// Zustand für den speziellen Schlüssel bereits wiederhergestellt wurde,
    /// wird der Navigationsverlauf bei der Registrierung sofort wiederhergestellt.  Bei nachfolgenden Aufrufen von
    /// <see cref="RestoreAsync"/> wird der Navigationsverlauf ebenfalls wiederhergestellt.
    /// </summary>
    /// <param name="frame">Eine Instanz, deren Navigationsverlauf von
    /// <see cref="SuspensionManager"/></param>
    /// <param name="sessionStateKey">Ein eindeutiger Schlüssel in <see cref="SessionState"/> zum
    /// Speichern von navigationsbezogenen Informationen.</param>
    /// <param name="sessionBaseKey">Ein optionaler Schlüssel zum Identifizieren des Typs der Sitzung.
    /// Damit können verschiedene Szenarien für den Anwendungsstart unterschieden werden.</param>
    public static void RegisterFrame(Frame frame, String sessionStateKey, String sessionBaseKey = null)
    {
      if (frame.GetValue(FrameSessionStateKeyProperty) != null)
      {
        throw new InvalidOperationException("Frames can only be registered to one session state key");
      }

      if (frame.GetValue(FrameSessionStateProperty) != null)
      {
        throw new InvalidOperationException("Frames must be either be registered before accessing frame session state, or not registered at all");
      }

      if (!string.IsNullOrEmpty(sessionBaseKey))
      {
        frame.SetValue(FrameSessionBaseKeyProperty, sessionBaseKey);
        sessionStateKey = sessionBaseKey + "_" + sessionStateKey;
      }

      // Eine Abhängigkeitseigenschaft verwenden, um den Sitzungsschlüssel mit einem Rahmen zu verknüpfen, und eine Liste von Rahmen speichern, deren
      // Navigationszustand verwaltet werden soll
      frame.SetValue(FrameSessionStateKeyProperty, sessionStateKey);
      _registeredFrames.Add(new WeakReference<Frame>(frame));

      // Überprüfen, ob der Navigationszustand wiederhergestellt werden kann
      RestoreFrameNavigationState(frame);
    }
开发者ID:imifos,项目名称:Termserver,代码行数:40,代码来源:SuspensionManager.cs

示例9: SessionStateForFrame

    /// <summary>
    /// Bietet Speichermöglichkeit für den Sitzungszustand, der mit dem angegebenen <see cref="Frame"/> verknüpft ist.
    /// Für Rahmen, die zuvor mit <see cref="RegisterFrame"/> registriert wurden, wird der
    /// Sitzungszustand automatisch als Teil des globalen <see cref="SessionState"/>
    /// gespeichert und wiederhergestellt.  Rahmen, die nicht registriert sind, verfügen über einen vorübergehenden Zustand,
    /// der weiterhin nützlich sein kann, wenn Seiten wiederhergestellt werden, die aus dem
    /// im Navigationscache verworfen wird.
    /// </summary>
    /// <remarks>Apps können beim Verwalten des seitenspezifischen Zustands auf <see cref="NavigationHelper"/> zurückgreifen,
    /// anstatt direkt mit dem Rahmensitzungszustand zu arbeiten.</remarks>
    /// <param name="frame">Die Instanz, für die der Sitzungszustand gewünscht wird.</param>
    /// <returns>Eine Auflistung des Zustands, für den der gleiche Serialisierungsmechanismus wie für
    /// <see cref="SessionState"/>.</returns>
    public static Dictionary<String, Object> SessionStateForFrame(Frame frame)
    {
      var frameState = (Dictionary<String, Object>)frame.GetValue(FrameSessionStateProperty);

      if (frameState == null)
      {
        var frameSessionKey = (String)frame.GetValue(FrameSessionStateKeyProperty);
        if (frameSessionKey != null)
        {
          // Registrierte Rahmen geben den entsprechenden Sitzungszustand wieder.
          if (!_sessionState.ContainsKey(frameSessionKey))
          {
            _sessionState[frameSessionKey] = new Dictionary<String, Object>();
          }
          frameState = (Dictionary<String, Object>)_sessionState[frameSessionKey];
        }
        else
        {
          // Rahmen, die nicht registriert sind, verfügen über einen vorübergehenden Zustand
          frameState = new Dictionary<String, Object>();
        }
        frame.SetValue(FrameSessionStateProperty, frameState);
      }
      return frameState;
    }
开发者ID:imifos,项目名称:Termserver,代码行数:38,代码来源:SuspensionManager.cs


注:本文中的Windows.UI.Xaml.Controls.Frame.GetValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。