ListBoxItemAutomationPeer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / ListBoxItemAutomationPeer.cs / 1305600 / ListBoxItemAutomationPeer.cs

                            using System; 
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security; 
using System.Text;
using System.Windows; 
using System.Windows.Automation.Provider; 
using System.Windows.Controls;
using System.Windows.Controls.Primitives; 
using System.Windows.Interop;
using System.Windows.Media;

using MS.Internal; 
using MS.Win32;
 
namespace System.Windows.Automation.Peers 
{
 
    ///
    public class ListBoxItemAutomationPeer : SelectorItemAutomationPeer, IScrollItemProvider
    {
        /// 
        public ListBoxItemAutomationPeer(object owner, SelectorAutomationPeer selectorAutomationPeer)
            : base(owner, selectorAutomationPeer) 
        { 
        }
 
        ///
        override protected string GetClassNameCore()
        {
            return "ListBoxItem"; 
        }
 
        /// 
        override protected AutomationControlType GetAutomationControlTypeCore()
        { 
            return AutomationControlType.ListItem;
        }

        /// 
        override public object GetPattern(PatternInterface patternInterface)
        { 
            if (patternInterface == PatternInterface.ScrollItem) 
            {
                return this; 
            }
            return base.GetPattern(patternInterface);
        }
 
        ///For ComboBoxItem for which peer is this element only, scrolling should happen when the pop-up is expanded.
        internal override void RealizeCore() 
        { 

            ComboBox parent = ItemsControlAutomationPeer.Owner as ComboBox; 
            if (parent != null)
            {
                IExpandCollapseProvider iecp = (IExpandCollapseProvider)UIElementAutomationPeer.FromElement(parent) as ComboBoxAutomationPeer;
                if (iecp.ExpandCollapseState != ExpandCollapseState.Expanded) 
                    iecp.Expand();
            } 
            base.RealizeCore(); 

        } 

        void IScrollItemProvider.ScrollIntoView()
        {
            ListBox parent = ItemsControlAutomationPeer.Owner as ListBox; 
            if (parent != null)
                parent.ScrollIntoView(Item); 
            else 
            {
                ComboBoxAutomationPeer parentPeer = ItemsControlAutomationPeer as ComboBoxAutomationPeer; 
                if(parentPeer != null)
                    parentPeer.ScrollItemIntoView(Item);
            }
        } 

    } 
} 

 


// 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