MouseGestureValueSerializer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / Command / MouseGestureValueSerializer.cs / 1 / MouseGestureValueSerializer.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: MouseGestureValueSerializer - Serializes a MouseGesture 
// 
// History:
//  08/04/2005    : Chuck Jazdzewski - Created 
//
//---------------------------------------------------------------------------

using System; 
using System.ComponentModel;    // for TypeConverter
using System.Globalization;     // for CultureInfo 
using System.Reflection; 
using System.Windows;
using System.Windows.Input; 
using System.Windows.Markup;

namespace System.Windows.Input
{ 
    /// 
    /// MouseGesture - Converter class for converting between a string and the Type of a MouseGesture 
    ///  
    public class MouseGestureValueSerializer : ValueSerializer
    { 
        /// 
        /// CanConvertFromString()
        /// 
        ///  
        /// 
        ///  
        ///  
        public override bool CanConvertFromString(string value, IValueSerializerContext context)
        { 
            return true;
        }

        ///  
        /// CanConvertToString()
        ///  
        ///  
        /// 
        ///  
        /// 
        public override bool CanConvertToString(object value, IValueSerializerContext context)
        {
            bool result = false; 
            MouseGesture mouseGesture = value as MouseGesture;
 
            if(mouseGesture != null) 
            {
                if(ModifierKeysConverter.IsDefinedModifierKeys(mouseGesture.Modifiers) 
                   && MouseActionConverter.IsDefinedMouseAction(mouseGesture.MouseAction))
                {
                    result = true;
                } 

            } 
 
            return result;
        } 

        /// 
        /// ConvertFromString()
        ///  
        /// 
        ///  
        ///  
        public override object ConvertFromString(string value, IValueSerializerContext context)
        { 
            TypeConverter converter = TypeDescriptor.GetConverter(typeof(MouseGesture));
            if (converter != null)
                return converter.ConvertFromString(value);
            else 
                return base.ConvertFromString(value, context);
        } 
 
        /// 
        /// ConvertToString() 
        /// 
        /// 
        /// 
        ///  
        public override string ConvertToString(object value, IValueSerializerContext context)
        { 
            TypeConverter converter = TypeDescriptor.GetConverter(typeof(MouseGesture)); 
            if (converter != null)
                return converter.ConvertToInvariantString(value); 
            else
                return base.ConvertToString(value, context);
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK