AccessibleObject 類別
定義
提供資訊,讓協助工具應用程式能用於為殘障使用者調整應用程式的使用者介面 (UI)。Provides information that accessibility applications use to adjust an application's user interface (UI) for users with impairments.
public ref class AccessibleObject : System::Runtime::InteropServices::StandardOleMarshalObject, Accessibility::IAccessible, System::Reflection::IReflect
public ref class AccessibleObject : MarshalByRefObject, Accessibility::IAccessible, System::Reflection::IReflect
public class AccessibleObject : System.Runtime.InteropServices.StandardOleMarshalObject, Accessibility.IAccessible, System.Reflection.IReflect
[System.Runtime.InteropServices.ComVisible(true)]
public class AccessibleObject : System.Runtime.InteropServices.StandardOleMarshalObject, Accessibility.IAccessible, System.Reflection.IReflect
[System.Runtime.InteropServices.ComVisible(true)]
public class AccessibleObject : MarshalByRefObject, Accessibility.IAccessible, System.Reflection.IReflect
type AccessibleObject = class
inherit StandardOleMarshalObject
interface IReflect
interface IAccessible
interface Interop.UiaCore.IAccessibleEx
interface Interop.Ole32.IServiceProvider
interface Interop.UiaCore.IRawElementProviderSimple
interface Interop.UiaCore.IRawElementProviderFragment
interface Interop.UiaCore.IRawElementProviderFragmentRoot
interface Interop.UiaCore.IInvokeProvider
interface Interop.UiaCore.IValueProvider
interface Interop.UiaCore.IRangeValueProvider
interface Interop.UiaCore.IExpandCollapseProvider
interface Interop.UiaCore.IToggleProvider
interface Interop.UiaCore.ITableProvider
interface Interop.UiaCore.ITableItemProvider
interface Interop.UiaCore.IGridProvider
interface Interop.UiaCore.IGridItemProvider
interface Interop.Oleaut32.IEnumVariant
interface Interop.Ole32.IOleWindow
interface Interop.UiaCore.ILegacyIAccessibleProvider
interface Interop.UiaCore.ISelectionProvider
interface Interop.UiaCore.ISelectionItemProvider
interface Interop.UiaCore.IRawElementProviderHwndOverride
interface Interop.UiaCore.IScrollItemProvider
interface Interop.UiaCore.IMultipleViewProvider
interface Interop.UiaCore.ITextProvider
interface Interop.UiaCore.ITextProvider2
[<System.Runtime.InteropServices.ComVisible(true)>]
type AccessibleObject = class
inherit StandardOleMarshalObject
interface IReflect
interface IAccessible
interface UnsafeNativeMethods.IAccessibleEx
interface UnsafeNativeMethods.IServiceProvider
interface UnsafeNativeMethods.IRawElementProviderSimple
interface UnsafeNativeMethods.IRawElementProviderFragment
interface UnsafeNativeMethods.IRawElementProviderFragmentRoot
interface UnsafeNativeMethods.IInvokeProvider
interface UnsafeNativeMethods.IValueProvider
interface UnsafeNativeMethods.IRangeValueProvider
interface UnsafeNativeMethods.IExpandCollapseProvider
interface UnsafeNativeMethods.IToggleProvider
interface UnsafeNativeMethods.ITableProvider
interface UnsafeNativeMethods.ITableItemProvider
interface UnsafeNativeMethods.IGridProvider
interface UnsafeNativeMethods.IGridItemProvider
interface UnsafeNativeMethods.IEnumVariant
interface UnsafeNativeMethods.IOleWindow
interface UnsafeNativeMethods.ILegacyIAccessibleProvider
interface UnsafeNativeMethods.ISelectionProvider
interface UnsafeNativeMethods.ISelectionItemProvider
interface UnsafeNativeMethods.IRawElementProviderHwndOverride
interface UnsafeNativeMethods.IScrollItemProvider
[<System.Runtime.InteropServices.ComVisible(true)>]
type AccessibleObject = class
inherit MarshalByRefObject
interface IReflect
interface IAccessible
interface UnsafeNativeMethods.IEnumVariant
interface UnsafeNativeMethods.IMarshal
[<System.Runtime.InteropServices.ComVisible(true)>]
type AccessibleObject = class
inherit StandardOleMarshalObject
interface IReflect
interface IAccessible
interface UnsafeNativeMethods.IEnumVariant
interface UnsafeNativeMethods.IOleWindow
[<System.Runtime.InteropServices.ComVisible(true)>]
type AccessibleObject = class
inherit StandardOleMarshalObject
interface IReflect
interface IAccessible
Public Class AccessibleObject
Inherits StandardOleMarshalObject
Implements IAccessible, IReflect
Public Class AccessibleObject
Inherits MarshalByRefObject
Implements IAccessible, IReflect
- 繼承
- 繼承
- 衍生
- 屬性
- 實作
範例
下列程式碼範例將示範如何使用 AccessibleObject 和 Control.ControlAccessibleObject 類別來公開可存取的資訊,以建立可感知存取感知的圖表控制項。The following code example demonstrates the creation of an accessibility-aware chart control, using the AccessibleObject and Control.ControlAccessibleObject classes to expose accessible information. 此控制項會繪製兩個曲線以及一個圖例。The control plots two curves along with a legend. 衍生自的 ChartControlAccessibleObject
類別 ControlAccessibleObject
會用於方法中, CreateAccessibilityInstance 以提供 chart 控制項的自訂可存取訊號。The ChartControlAccessibleObject
class, which derives from ControlAccessibleObject
, is used in the CreateAccessibilityInstance method to provide custom accessible information for the chart control. 因為圖表圖例不是實際的 Control 控制項,而是由 chart 控制項繪製,所以它沒有任何內建的可存取訊號。Because the chart legend is not an actual Control -based control, but instead is drawn by the chart control, it does not have any built-in accessible information. 因此, ChartControlAccessibleObject
類別會覆寫方法, GetChild 以傳回 CurveLegendAccessibleObject
代表圖例每個部分之可存取訊號的。Because of this, the ChartControlAccessibleObject
class overrides the GetChild method to return the CurveLegendAccessibleObject
that represents accessible information for each part of the legend. 當可存取感知的應用程式使用此控制項時,控制項可以提供必要的可存取訊號。When an accessible-aware application uses this control, the control can provide the necessary accessible information.
#using <Accessibility.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
// Declare a chart control that demonstrates accessibility in Windows Forms.
public ref class ChartControl: public System::Windows::Forms::UserControl
{
public:
ref class ChartControlAccessibleObject;
// forward declaration
// Inner Class that represents a legend for a curve in the chart.
ref class CurveLegend
{
// Inner class CurveLegendAccessibleObject represents accessible information
// associated with the CurveLegend object.
public:
ref class CurveLegendAccessibleObject: public AccessibleObject
{
private:
CurveLegend^ curveLegend;
public:
CurveLegendAccessibleObject( CurveLegend^ curveLegend )
: AccessibleObject()
{
this->curveLegend = curveLegend;
}
private:
property ChartControlAccessibleObject^ ChartControl
{
// Private property that helps get the reference to the parent ChartControl.
ChartControlAccessibleObject^ get()
{
return dynamic_cast<ChartControlAccessibleObject^>(Parent);
}
}
internal:
property int ID
{
// Internal helper function that returns the ID for this CurveLegend.
int get()
{
for ( int i = 0; i < ChartControl->GetChildCount(); i++ )
{
if ( ChartControl->GetChild( i ) == this )
{
return i;
}
}
return -1;
}
}
public:
property Rectangle Bounds
{
// Gets the Bounds for the CurveLegend. This is used by accessibility programs.
virtual Rectangle get() override
{
// The bounds is in screen coordinates.
Point loc = curveLegend->Location;
return Rectangle(curveLegend->chart->PointToScreen( loc ),curveLegend->Size);
}
}
property String^ Name
{
// Gets or sets the Name for the CurveLegend. This is used by accessibility programs.
virtual String^ get() override
{
return curveLegend->Name;
}
virtual void set( String^ value ) override
{
curveLegend->Name = value;
}
}
property AccessibleObject^ Parent
{
// Gets the Curve Legend Parent's Accessible object.
// This is used by accessibility programs.
virtual AccessibleObject^ get() override
{
return curveLegend->chart->AccessibilityObject;
}
}
property System::Windows::Forms::AccessibleRole Role
{
// Gets the role for the CurveLegend. This is used by accessibility programs.
virtual System::Windows::Forms::AccessibleRole get() override
{
return ::AccessibleRole::StaticText;
}
}
property AccessibleStates State
{
// Gets the state based on the selection for the CurveLegend.
// This is used by accessibility programs.
virtual AccessibleStates get() override
{
AccessibleStates state = AccessibleStates::Selectable;
if ( curveLegend->Selected )
{
state = static_cast<AccessibleStates>(state | AccessibleStates::Selected);
}
return state;
}
}
// Navigates through siblings of this CurveLegend. This is used by accessibility programs.
virtual AccessibleObject^ Navigate( AccessibleNavigation navdir ) override
{
// Uses the internal NavigateFromChild helper function that exists
// on ChartControlAccessibleObject.
return ChartControl->NavigateFromChild( this, navdir );
}
// Selects or unselects this CurveLegend. This is used by accessibility programs.
virtual void Select( AccessibleSelection selection ) override
{
// Uses the internal SelectChild helper function that exists
// on ChartControlAccessibleObject.
ChartControl->SelectChild( this, selection );
}
};
private:
// class CurveLgendAccessibleObject
String^ name;
ChartControl^ chart;
CurveLegendAccessibleObject^ accObj;
bool selected;
Point location;
public:
CurveLegend( ChartControl^ chart, String^ name )
{
this->chart = chart;
this->name = name;
selected = true;
}
property AccessibleObject^ AccessibilityObject
{
// Gets the accessibility object for the curve legend.
AccessibleObject^ get()
{
if ( accObj == nullptr )
{
accObj = gcnew CurveLegendAccessibleObject( this );
}
return accObj;
}
}
property Rectangle Bounds
{
// Gets the bounds for the curve legend.
Rectangle get()
{
return Rectangle(Location,Size);
}
}
property Point Location
{
// Gets or sets the location for the curve legend.
Point get()
{
return location;
}
void set( Point value )
{
location = value;
chart->Invalidate();
// Notifies the chart of the location change. This is used for
// the accessibility information. AccessibleEvents::LocationChange
// tells the chart the reason for the notification.
chart->AccessibilityNotifyClients( AccessibleEvents::LocationChange, (dynamic_cast<CurveLegendAccessibleObject^>(AccessibilityObject))->ID );
}
}
property String^ Name
{
// Gets or sets the Name for the curve legend.
String^ get()
{
return name;
}
void set( String^ value )
{
if ( name != value )
{
name = value;
chart->Invalidate();
// Notifies the chart of the name change. This is used for
// the accessibility information. AccessibleEvents::NameChange
// tells the chart the reason for the notification.
chart->AccessibilityNotifyClients( AccessibleEvents::NameChange, (dynamic_cast<CurveLegendAccessibleObject^>(AccessibilityObject))->ID );
}
}
}
property bool Selected
{
// Gets or sets the Selected state for the curve legend.
bool get()
{
return selected;
}
void set( bool value )
{
if ( selected != value )
{
selected = value;
chart->Invalidate();
// Notifies the chart of the selection value change. This is used for
// the accessibility information. The AccessibleEvents value depends upon
// if the selection is true (AccessibleEvents::SelectionAdd) or
// false (AccessibleEvents::SelectionRemove).
chart->AccessibilityNotifyClients( selected ? AccessibleEvents::SelectionAdd : AccessibleEvents::SelectionRemove, (dynamic_cast<CurveLegendAccessibleObject^>(AccessibilityObject))->ID );
}
}
}
property System::Drawing::Size Size
{
// Gets the Size for the curve legend.
System::Drawing::Size get()
{
int legendHeight = chart->Font->Height + 4;
Graphics^ g = chart->CreateGraphics();
int legendWidth = (int)g->MeasureString( Name, chart->Font ).Width + 4;
return System::Drawing::Size( legendWidth, legendHeight );
}
}
};
private:
// class CurveLegend
CurveLegend^ legend1;
CurveLegend^ legend2;
public:
ChartControl()
{
// The ChartControl draws the chart in the OnPaint .
SetStyle( ControlStyles::ResizeRedraw, true );
SetStyle( ControlStyles::DoubleBuffer, true );
SetStyle( ControlStyles::AllPaintingInWmPaint, true );
this->BackColor = System::Drawing::Color::White;
this->Name = "ChartControl";
this->Click += gcnew System::EventHandler( this, &ChartControl::ChartControl_Click );
this->QueryAccessibilityHelp += gcnew System::Windows::Forms::QueryAccessibilityHelpEventHandler( this, &ChartControl::ChartControl_QueryAccessibilityHelp );
// The CurveLengend is not Control-based, it just
// represents the parts of the legend.
legend1 = gcnew CurveLegend( this,"A" );
legend1->Location = Point(20,30);
legend2 = gcnew CurveLegend( this,"B" );
legend2->Location = Point(20,50);
}
protected:
// Overridden to return the custom AccessibleObject
// for the entire chart.
virtual AccessibleObject^ CreateAccessibilityInstance() override
{
return gcnew ChartControlAccessibleObject( this );
}
virtual void OnPaint( PaintEventArgs^ e ) override
{
// The ChartControl draws the chart in the OnPaint .
System::Windows::Forms::UserControl::OnPaint( e );
Rectangle bounds = this->ClientRectangle;
int border = 5;
// Draws the legends first.
StringFormat^ format = gcnew StringFormat;
format->Alignment = StringAlignment::Center;
format->LineAlignment = StringAlignment::Center;
if ( legend1 != nullptr )
{
if ( legend1->Selected )
{
e->Graphics->FillRectangle( gcnew SolidBrush( Color::Blue ), legend1->Bounds );
}
else
{
e->Graphics->DrawRectangle( Pens::Blue, legend1->Bounds );
}
e->Graphics->DrawString( legend1->Name, this->Font, Brushes::Black, legend1->Bounds, format );
}
if ( legend2 != nullptr )
{
if ( legend2->Selected )
{
e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), legend2->Bounds );
}
else
{
e->Graphics->DrawRectangle( Pens::Red, legend2->Bounds );
}
e->Graphics->DrawString( legend2->Name, this->Font, Brushes::Black, legend2->Bounds, format );
}
// Charts out the actual curves that represent data in the Chart.
bounds.Inflate( -border, -border );
array<Point>^ temp1 = {Point(bounds.Left,bounds.Bottom),Point(bounds.Left + bounds.Width / 3,bounds.Top + bounds.Height / 5),Point(bounds.Right - bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2),Point(bounds.Right,bounds.Top)};
array<Point>^curve1 = temp1;
array<Point>^ temp2 = {Point(bounds.Left,bounds.Bottom - bounds.Height / 3),Point(bounds.Left + bounds.Width / 3,bounds.Top + bounds.Height / 5),Point(bounds.Right - bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2),Point(bounds.Right,bounds.Top + bounds.Height / 2)};
array<Point>^curve2 = temp2;
// Draws the actual curve only if it is selected.
if ( legend1->Selected )
e->Graphics->DrawCurve( Pens::Blue, curve1 );
if ( legend2->Selected )
e->Graphics->DrawCurve( Pens::Red, curve2 );
e->Graphics->DrawRectangle( Pens::Blue, bounds );
}
// Handles the QueryAccessibilityHelp event.
void ChartControl_QueryAccessibilityHelp( Object^ /*sender*/, System::Windows::Forms::QueryAccessibilityHelpEventArgs^ e )
{
e->HelpString = "Displays chart data";
}
// Handles the Click event for the chart.
// Toggles the selection of whatever legend was clicked on
void ChartControl_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
Point pt = this->PointToClient( Control::MousePosition );
if ( legend1->Bounds.Contains( pt ) )
{
legend1->Selected = !legend1->Selected;
}
else
if ( legend2->Bounds.Contains( pt ) )
{
legend2->Selected = !legend2->Selected;
}
}
public:
property array<CurveLegend^>^ Legends
{
// Gets an array of CurveLengends used in the Chart.
array<CurveLegend^>^ get()
{
array<CurveLegend^>^temp3 = {legend1,legend2};
return temp3;
}
}
// Inner class ChartControlAccessibleObject represents accessible information associated with the ChartControl.
// The ChartControlAccessibleObject is returned in the ChartControl::CreateAccessibilityInstance .
ref class ChartControlAccessibleObject: public ControlAccessibleObject
{
private:
ChartControl^ chartControl;
public:
ChartControlAccessibleObject( ChartControl^ ctrl )
: ControlAccessibleObject( ctrl )
{
chartControl = ctrl;
}
property System::Windows::Forms::AccessibleRole Role
{
// Gets the role for the Chart. This is used by accessibility programs.
virtual System::Windows::Forms::AccessibleRole get() override
{
return ::AccessibleRole::Chart;
}
}
property AccessibleStates State
{
// Gets the state for the Chart. This is used by accessibility programs.
virtual AccessibleStates get() override
{
return AccessibleStates::ReadOnly;
}
}
// The CurveLegend objects are "child" controls in terms of accessibility so
// return the number of ChartLengend objects.
virtual int GetChildCount() override
{
return chartControl->Legends->Length;
}
// Gets the Accessibility object of the child CurveLegend idetified by index.
virtual AccessibleObject^ GetChild( int index ) override
{
if ( index >= 0 && index < chartControl->Legends->Length )
{
return chartControl->Legends[ index ]->AccessibilityObject;
}
return nullptr;
}
internal:
// Helper function that is used by the CurveLegend's accessibility object
// to navigate between sibiling controls. Specifically, this function is used in
// the CurveLegend::CurveLegendAccessibleObject.Navigate function.
AccessibleObject^ NavigateFromChild( CurveLegend::CurveLegendAccessibleObject^ child, AccessibleNavigation navdir )
{
switch ( navdir )
{
case AccessibleNavigation::Down:
case AccessibleNavigation::Next:
return GetChild( child->ID + 1 );
case AccessibleNavigation::Up:
case AccessibleNavigation::Previous:
return GetChild( child->ID - 1 );
}
return nullptr;
}
// Helper function that is used by the CurveLegend's accessibility object
// to select a specific CurveLegend control. Specifically, this function is used
// in the CurveLegend::CurveLegendAccessibleObject.Select function.
void SelectChild( CurveLegend::CurveLegendAccessibleObject^ child, AccessibleSelection selection )
{
int childID = child->ID;
// Determine which selection action should occur, based on the
// AccessibleSelection value.
if ( (selection & AccessibleSelection::TakeSelection) != (AccessibleSelection)0 )
{
for ( int i = 0; i < chartControl->Legends->Length; i++ )
{
if ( i == childID )
{
chartControl->Legends[ i ]->Selected = true;
}
else
{
chartControl->Legends[ i ]->Selected = false;
}
}
// AccessibleSelection->AddSelection means that the CurveLegend will be selected.
if ( (selection & AccessibleSelection::AddSelection) != (AccessibleSelection)0 )
{
chartControl->Legends[ childID ]->Selected = true;
}
// AccessibleSelection->AddSelection means that the CurveLegend will be unselected.
if ( (selection & AccessibleSelection::RemoveSelection) != (AccessibleSelection)0 )
{
chartControl->Legends[ childID ]->Selected = false;
}
}
}
};
// class ChartControlAccessibleObject
};
// class ChartControl
public ref class Form1: public System::Windows::Forms::Form
{
private:
// Test out the Chart Control.
ChartControl^ chart1;
public:
Form1()
{
// Create a chart control and add it to the form.
this->chart1 = gcnew ChartControl;
this->ClientSize = System::Drawing::Size( 920, 566 );
this->chart1->Location = System::Drawing::Point( 47, 16 );
this->chart1->Size = System::Drawing::Size( 600, 400 );
this->Controls->Add( this->chart1 );
}
};
// class Form1
[STAThread]
int main()
{
Application::Run( gcnew Form1 );
}
using System;
using System.Drawing;
using System.Windows.Forms;
namespace ChartControl
{
public class Form1 : System.Windows.Forms.Form
{
// Test out the Chart Control.
private ChartControl chart1;
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
public Form1() {
// Create a chart control and add it to the form.
this.chart1 = new ChartControl();
this.ClientSize = new System.Drawing.Size(920, 566);
this.chart1.Location = new System.Drawing.Point(47, 16);
this.chart1.Size = new System.Drawing.Size(600, 400);
this.Controls.Add(this.chart1);
}
}
// Declare a chart control that demonstrates accessibility in Windows Forms.
public class ChartControl : System.Windows.Forms.UserControl
{
private CurveLegend legend1;
private CurveLegend legend2;
public ChartControl()
{
// The ChartControl draws the chart in the OnPaint override.
SetStyle(ControlStyles.ResizeRedraw, true);
SetStyle(ControlStyles.DoubleBuffer, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.BackColor = System.Drawing.Color.White;
this.Name = "ChartControl";
this.Click += new System.EventHandler(this.ChartControl_Click);
this.QueryAccessibilityHelp +=
new System.Windows.Forms.QueryAccessibilityHelpEventHandler(
this.ChartControl_QueryAccessibilityHelp);
// The CurveLengend is not Control-based, it just
// represents the parts of the legend.
legend1 = new CurveLegend(this, "A");
legend1.Location = new Point(20, 30);
legend2 = new CurveLegend(this, "B");
legend2.Location = new Point(20, 50);
}
// Overridden to return the custom AccessibleObject
// for the entire chart.
protected override AccessibleObject CreateAccessibilityInstance()
{
return new ChartControlAccessibleObject(this);
}
protected override void OnPaint(PaintEventArgs e)
{
// The ChartControl draws the chart in the OnPaint override.
base.OnPaint(e);
Rectangle bounds = this.ClientRectangle;
int border = 5;
// Draws the legends first.
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
if (legend1 != null) {
if (legend1.Selected) {
e.Graphics.FillRectangle(new SolidBrush(Color.Blue), legend1.Bounds);
} else {
e.Graphics.DrawRectangle(Pens.Blue, legend1.Bounds);
}
e.Graphics.DrawString(legend1.Name, this.Font, Brushes.Black, legend1.Bounds, format);
}
if (legend2 != null) {
if (legend2.Selected) {
e.Graphics.FillRectangle(new SolidBrush(Color.Red), legend2.Bounds);
} else {
e.Graphics.DrawRectangle(Pens.Red, legend2.Bounds);
}
e.Graphics.DrawString(legend2.Name, this.Font, Brushes.Black, legend2.Bounds, format);
}
// Charts out the actual curves that represent data in the Chart.
bounds.Inflate(-border, -border);
Point[] curve1 = new Point[] {new Point(bounds.Left, bounds.Bottom),
new Point(bounds.Left + bounds.Width / 3, bounds.Top + bounds.Height / 5),
new Point(bounds.Right - bounds.Width / 3, (bounds.Top + bounds.Bottom) / 2),
new Point(bounds.Right, bounds.Top)};
Point[] curve2 = new Point[] {new Point(bounds.Left, bounds.Bottom - bounds.Height / 3),
new Point(bounds.Left + bounds.Width / 3, bounds.Top + bounds.Height / 5),
new Point(bounds.Right - bounds.Width / 3, (bounds.Top + bounds.Bottom) / 2),
new Point(bounds.Right, bounds.Top + bounds.Height / 2)};
// Draws the actual curve only if it is selected.
if (legend1.Selected) e.Graphics.DrawCurve(Pens.Blue, curve1);
if (legend2.Selected) e.Graphics.DrawCurve(Pens.Red, curve2);
e.Graphics.DrawRectangle(Pens.Blue, bounds);
}
// Handles the QueryAccessibilityHelp event.
private void ChartControl_QueryAccessibilityHelp(object sender,
System.Windows.Forms.QueryAccessibilityHelpEventArgs e)
{
e.HelpString = "Displays chart data";
}
// Handles the Click event for the chart.
// Toggles the selection of whatever legend was clicked on
private void ChartControl_Click(object sender, System.EventArgs e)
{
Point pt = this.PointToClient(Control.MousePosition);
if (legend1.Bounds.Contains(pt)) {
legend1.Selected = !legend1.Selected;
} else if (legend2.Bounds.Contains(pt)) {
legend2.Selected = !legend2.Selected;
}
}
// Gets an array of CurveLengends used in the Chart.
public CurveLegend[] Legends
{
get {
return new CurveLegend[] { legend1, legend2 };
}
}
// Inner class ChartControlAccessibleObject represents accessible information associated with the ChartControl.
// The ChartControlAccessibleObject is returned in the ChartControl.CreateAccessibilityInstance override.
public class ChartControlAccessibleObject : ControlAccessibleObject
{
ChartControl chartControl;
public ChartControlAccessibleObject(ChartControl ctrl) : base(ctrl)
{
chartControl = ctrl;
}
// Gets the role for the Chart. This is used by accessibility programs.
public override AccessibleRole Role
{
get {
return AccessibleRole.Chart;
}
}
// Gets the state for the Chart. This is used by accessibility programs.
public override AccessibleStates State
{
get {
return AccessibleStates.ReadOnly;
}
}
// The CurveLegend objects are "child" controls in terms of accessibility so
// return the number of ChartLengend objects.
public override int GetChildCount()
{
return chartControl.Legends.Length;
}
// Gets the Accessibility object of the child CurveLegend idetified by index.
public override AccessibleObject GetChild(int index)
{
if (index >= 0 && index < chartControl.Legends.Length) {
return chartControl.Legends[index].AccessibilityObject;
}
return null;
}
// Helper function that is used by the CurveLegend's accessibility object
// to navigate between sibiling controls. Specifically, this function is used in
// the CurveLegend.CurveLegendAccessibleObject.Navigate function.
internal AccessibleObject NavigateFromChild(CurveLegend.CurveLegendAccessibleObject child,
AccessibleNavigation navdir)
{
switch(navdir) {
case AccessibleNavigation.Down:
case AccessibleNavigation.Next:
return GetChild(child.ID + 1);
case AccessibleNavigation.Up:
case AccessibleNavigation.Previous:
return GetChild(child.ID - 1);
}
return null;
}
// Helper function that is used by the CurveLegend's accessibility object
// to select a specific CurveLegend control. Specifically, this function is used
// in the CurveLegend.CurveLegendAccessibleObject.Select function.
internal void SelectChild(CurveLegend.CurveLegendAccessibleObject child, AccessibleSelection selection)
{
int childID = child.ID;
// Determine which selection action should occur, based on the
// AccessibleSelection value.
if ((selection & AccessibleSelection.TakeSelection) != 0) {
for(int i = 0; i < chartControl.Legends.Length; i++) {
if (i == childID) {
chartControl.Legends[i].Selected = true;
} else {
chartControl.Legends[i].Selected = false;
}
}
// AccessibleSelection.AddSelection means that the CurveLegend will be selected.
if ((selection & AccessibleSelection.AddSelection) != 0) {
chartControl.Legends[childID].Selected = true;
}
// AccessibleSelection.AddSelection means that the CurveLegend will be unselected.
if ((selection & AccessibleSelection.RemoveSelection) != 0) {
chartControl.Legends[childID].Selected = false;
}
}
}
}
// Inner Class that represents a legend for a curve in the chart.
public class CurveLegend
{
private string name;
private ChartControl chart;
private CurveLegendAccessibleObject accObj;
private bool selected = true;
private Point location;
public CurveLegend(ChartControl chart, string name)
{
this.chart = chart;
this.name = name;
}
// Gets the accessibility object for the curve legend.
public AccessibleObject AccessibilityObject
{
get
{
accObj ??= new CurveLegendAccessibleObject(this);
return accObj;
}
}
// Gets the bounds for the curve legend.
public Rectangle Bounds
{
get
{
return new Rectangle(Location, Size);
}
}
// Gets or sets the location for the curve legend.
public Point Location
{
get {
return location;
}
set {
location = value;
chart.Invalidate();
// Notifies the chart of the location change. This is used for
// the accessibility information. AccessibleEvents.LocationChange
// tells the chart the reason for the notification.
chart.AccessibilityNotifyClients(AccessibleEvents.LocationChange,
((CurveLegendAccessibleObject)AccessibilityObject).ID);
}
}
// Gets or sets the Name for the curve legend.
public string Name
{
get {
return name;
}
set {
if (name != value)
{
name = value;
chart.Invalidate();
// Notifies the chart of the name change. This is used for
// the accessibility information. AccessibleEvents.NameChange
// tells the chart the reason for the notification.
chart.AccessibilityNotifyClients(AccessibleEvents.NameChange,
((CurveLegendAccessibleObject)AccessibilityObject).ID);
}
}
}
// Gets or sets the Selected state for the curve legend.
public bool Selected
{
get {
return selected;
}
set {
if (selected != value)
{
selected = value;
chart.Invalidate();
// Notifies the chart of the selection value change. This is used for
// the accessibility information. The AccessibleEvents value depends upon
// if the selection is true (AccessibleEvents.SelectionAdd) or
// false (AccessibleEvents.SelectionRemove).
chart.AccessibilityNotifyClients(
selected ? AccessibleEvents.SelectionAdd : AccessibleEvents.SelectionRemove,
((CurveLegendAccessibleObject)AccessibilityObject).ID);
}
}
}
// Gets the Size for the curve legend.
public Size Size
{
get {
int legendHeight = chart.Font.Height + 4;
Graphics g = chart.CreateGraphics();
int legendWidth = (int)g.MeasureString(Name, chart.Font).Width + 4;
return new Size(legendWidth, legendHeight);
}
}
// Inner class CurveLegendAccessibleObject represents accessible information
// associated with the CurveLegend object.
public class CurveLegendAccessibleObject : AccessibleObject
{
private CurveLegend curveLegend;
public CurveLegendAccessibleObject(CurveLegend curveLegend) : base()
{
this.curveLegend = curveLegend;
}
// Private property that helps get the reference to the parent ChartControl.
private ChartControlAccessibleObject ChartControl
{
get {
return Parent as ChartControlAccessibleObject;
}
}
// Internal helper function that returns the ID for this CurveLegend.
internal int ID
{
get {
for(int i = 0; i < ChartControl.GetChildCount(); i++) {
if (ChartControl.GetChild(i) == this) {
return i;
}
}
return -1;
}
}
// Gets the Bounds for the CurveLegend. This is used by accessibility programs.
public override Rectangle Bounds
{
get {
// The bounds is in screen coordinates.
Point loc = curveLegend.Location;
return new Rectangle(curveLegend.chart.PointToScreen(loc), curveLegend.Size);
}
}
// Gets or sets the Name for the CurveLegend. This is used by accessibility programs.
public override string Name
{
get {
return curveLegend.Name;
}
set {
curveLegend.Name = value;
}
}
// Gets the Curve Legend Parent's Accessible object.
// This is used by accessibility programs.
public override AccessibleObject Parent
{
get {
return curveLegend.chart.AccessibilityObject;
}
}
// Gets the role for the CurveLegend. This is used by accessibility programs.
public override AccessibleRole Role
{
get {
return AccessibleRole.StaticText;
}
}
// Gets the state based on the selection for the CurveLegend.
// This is used by accessibility programs.
public override AccessibleStates State
{
get {
AccessibleStates state = AccessibleStates.Selectable;
if (curveLegend.Selected)
{
state |= AccessibleStates.Selected;
}
return state;
}
}
// Navigates through siblings of this CurveLegend. This is used by accessibility programs.
public override AccessibleObject Navigate(AccessibleNavigation navdir)
{
// Uses the internal NavigateFromChild helper function that exists
// on ChartControlAccessibleObject.
return ChartControl.NavigateFromChild(this, navdir);
}
// Selects or unselects this CurveLegend. This is used by accessibility programs.
public override void Select(AccessibleSelection selection)
{
// Uses the internal SelectChild helper function that exists
// on ChartControlAccessibleObject.
ChartControl.SelectChild(this, selection);
}
}
}
}
}
Option Explicit
Imports System.Drawing
Imports System.Windows.Forms
Namespace ChartControlNameSpace
Public Class Form1
Inherits System.Windows.Forms.Form
' Test out the Chart Control.
Private chart1 As ChartControl
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New Form1())
End Sub
Public Sub New()
' Create a chart control and add it to the form.
Me.chart1 = New ChartControl()
Me.ClientSize = New System.Drawing.Size(920, 566)
Me.chart1.Location = New System.Drawing.Point(47, 16)
Me.chart1.Size = New System.Drawing.Size(600, 400)
Me.Controls.Add(Me.chart1)
End Sub
End Class
' Declares a chart control that demonstrates Accessibility in Windows Forms.
Public Class ChartControl
Inherits System.Windows.Forms.UserControl
Private legend1 As CurveLegend
Private legend2 As CurveLegend
Public Sub New()
' The ChartControl draws the chart in the OnPaint override.
SetStyle(ControlStyles.ResizeRedraw, True)
SetStyle(ControlStyles.DoubleBuffer, True)
SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.BackColor = System.Drawing.Color.White
Me.Name = "ChartControl"
' The CurveLengend is not Control-based, it just
' represent the parts of the legend.
legend1 = New CurveLegend(Me, "A")
legend1.Location = New Point(20, 30)
legend2 = New CurveLegend(Me, "B")
legend2.Location = New Point(20, 50)
End Sub
' Overridden to return the custom AccessibleObject
' for the entire chart.
Protected Overrides Function CreateAccessibilityInstance() As AccessibleObject
Return New ChartControlAccessibleObject(Me)
End Function
Protected Overrides Sub OnPaint(e As PaintEventArgs)
' The ChartControl draws the chart in the OnPaint override.
MyBase.OnPaint(e)
Dim bounds As Rectangle = Me.ClientRectangle
Dim border As Integer = 5
' Draw the legends first.
Dim format As New StringFormat()
format.Alignment = StringAlignment.Center
format.LineAlignment = StringAlignment.Center
If (legend1 IsNot Nothing) Then
If legend1.Selected Then
e.Graphics.FillRectangle(New SolidBrush(Color.Blue), legend1.Bounds)
Else
e.Graphics.DrawRectangle(Pens.Blue, legend1.Bounds)
End If
e.Graphics.DrawString(legend1.Name, Me.Font, Brushes.Black, RectangleF.op_Implicit(legend1.Bounds), format)
End If
If (legend2 IsNot Nothing) Then
If legend2.Selected Then
e.Graphics.FillRectangle(New SolidBrush(Color.Red), legend2.Bounds)
Else
e.Graphics.DrawRectangle(Pens.Red, legend2.Bounds)
End If
e.Graphics.DrawString(legend2.Name, Me.Font, Brushes.Black, RectangleF.op_Implicit(legend2.Bounds), format)
End If
' Chart out the actual curves that represent data in the Chart.
bounds.Inflate(-border, -border)
Dim curve1() As Point = {New Point(bounds.Left, bounds.Bottom), _
New Point(bounds.Left + bounds.Width / 3, bounds.Top + bounds.Height / 5), _
New Point(bounds.Right - bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2), _
New Point(bounds.Right, bounds.Top)}
Dim curve2() As Point = {New Point(bounds.Left, bounds.Bottom - bounds.Height / 3), _
New Point(bounds.Left + bounds.Width / 3, bounds.Top + bounds.Height / 5), _
New Point(bounds.Right - bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2), _
New Point(bounds.Right, bounds.Top + bounds.Height / 2)}
' Draw the actual curve only if it is selected.
If legend1.Selected Then
e.Graphics.DrawCurve(Pens.Blue, curve1)
End If
If legend2.Selected Then
e.Graphics.DrawCurve(Pens.Red, curve2)
End If
e.Graphics.DrawRectangle(Pens.Blue, bounds)
End Sub
' Handle the QueryAccessibilityHelp event.
Private Sub ChartControl_QueryAccessibilityHelp(sender As Object, _
e As System.Windows.Forms.QueryAccessibilityHelpEventArgs) Handles MyBase.QueryAccessibilityHelp
e.HelpString = "Displays chart data"
End Sub
' Handle the Click event for the chart.
' Toggle the selection of whatever legend was clicked.
Private Sub ChartControl_Click(sender As Object, e As System.EventArgs) Handles MyBase.Click
Dim pt As Point = Me.PointToClient(Control.MousePosition)
If legend1.Bounds.Contains(pt) Then
legend1.Selected = Not legend1.Selected
Else
If legend2.Bounds.Contains(pt) Then
legend2.Selected = Not legend2.Selected
End If
End If
End Sub
' Get an array of the CurveLengends used in the Chart.
Public ReadOnly Property Legends() As CurveLegend()
Get
Return New CurveLegend() {legend1, legend2}
End Get
End Property
Protected Sub ExposeAccessibilityNotifyClients(ByVal accEvent As AccessibleEvents, ByVal childID As Integer)
AccessibilityNotifyClients(accEvent, childID)
End Sub
' Inner Class ChartControlAccessibleObject represents accessible information
' associated with the ChartControl.
' The ChartControlAccessibleObject is returned in the ' ChartControl.CreateAccessibilityInstance override.
Public Class ChartControlAccessibleObject
Inherits Control.ControlAccessibleObject
Private chartControl As ChartControl
Public Sub New(ctrl As ChartControl)
MyBase.New(ctrl)
chartControl = ctrl
End Sub
' Get the role for the Chart. This is used by accessibility programs.
Public Overrides ReadOnly Property Role() As AccessibleRole
Get
Return System.Windows.Forms.AccessibleRole.Chart
End Get
End Property
' Get the state for the Chart. This is used by accessibility programs.
Public Overrides ReadOnly Property State() As AccessibleStates
Get
Return AccessibleStates.ReadOnly
End Get
End Property
' The CurveLegend objects are "child" controls in terms of accessibility so
' return the number of ChartLengend objects.
Public Overrides Function GetChildCount() As Integer
Return chartControl.Legends.Length
End Function
' Get the Accessibility object of the child CurveLegend idetified by index.
Public Overrides Function GetChild(index As Integer) As AccessibleObject
If index >= 0 And index < chartControl.Legends.Length Then
Return chartControl.Legends(index).AccessibilityObject
End If
Return Nothing
End Function
' Helper function that is used by the CurveLegend's accessibility object
' to navigate between sibiling controls. Specifically, this function is used in
' the CurveLegend.CurveLegendAccessibleObject.Navigate function.
Friend Function NavigateFromChild(child As CurveLegend.CurveLegendAccessibleObject, _
navdir As AccessibleNavigation) As AccessibleObject
Select Case navdir
Case AccessibleNavigation.Down, AccessibleNavigation.Next
Return GetChild(child.ID + 1)
Case AccessibleNavigation.Up, AccessibleNavigation.Previous
Return GetChild(child.ID - 1)
End Select
Return Nothing
End Function
' Helper function that is used by the CurveLegend's accessibility object
' to select a specific CurveLegend control. Specifically, this function is used
' in the CurveLegend.CurveLegendAccessibleObject.Select function.
Friend Sub SelectChild(child As CurveLegend.CurveLegendAccessibleObject, selection As AccessibleSelection)
Dim childID As Integer = child.ID
' Determine which selection action should occur, based on the
' AccessibleSelection value.
If (selection And AccessibleSelection.TakeSelection) <> 0 Then
Dim i As Integer
For i = 0 To chartControl.Legends.Length - 1
If i = childID Then
chartControl.Legends(i).Selected = True
Else
chartControl.Legends(i).Selected = False
End If
Next i
' AccessibleSelection.AddSelection means that the CurveLegend will be selected.
If (selection And AccessibleSelection.AddSelection) <> 0 Then
chartControl.Legends(childID).Selected = True
End If
' AccessibleSelection.AddSelection means that the CurveLegend will be unselected.
If (selection And AccessibleSelection.RemoveSelection) <> 0 Then
chartControl.Legends(childID).Selected = False
End If
End If
End Sub
End Class
' Inner Class that represents a legend for a curve in the chart.
Public Class CurveLegend
Private m_name As String
Private chart As ChartControl
Private accObj As CurveLegendAccessibleObject
Private m_selected As Boolean = True
Private m_location As Point
Public Sub New(chart As ChartControl, name As String)
Me.chart = chart
Me.m_name = name
End Sub
' Gets the accessibility object for the curve legend.
Public ReadOnly Property AccessibilityObject() As AccessibleObject
Get
If accObj Is Nothing Then
accObj = New CurveLegendAccessibleObject(Me)
End If
Return accObj
End Get
End Property
' Gets the bounds for the curve legend.
Public ReadOnly Property Bounds() As Rectangle
Get
Return New Rectangle(Location, Size)
End Get
End Property
' Gets or sets the location for the curve legend.
Public Property Location() As Point
Get
Return m_location
End Get
Set
m_location = value
chart.Invalidate()
' Notifies the chart of the location change. This is used for
' the accessibility information. AccessibleEvents.LocationChange
' tells the chart the reason for the notification.
chart.ExposeAccessibilityNotifyClients(AccessibleEvents.LocationChange, _
CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
End Set
End Property
' Gets or sets the Name for the curve legend.
Public Property Name() As String
Get
Return m_name
End Get
Set
If m_name <> value Then
m_name = value
chart.Invalidate()
' Notifies the chart of the name change. This is used for
' the accessibility information. AccessibleEvents.NameChange
' tells the chart the reason for the notification.
chart.ExposeAccessibilityNotifyClients(AccessibleEvents.NameChange, _
CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
End If
End Set
End Property
' Gets or sets the Selected state for the curve legend.
Public Property Selected() As Boolean
Get
Return m_selected
End Get
Set
If m_selected <> value Then
m_selected = value
chart.Invalidate()
' Notifies the chart of the selection value change. This is used for
' the accessibility information. The AccessibleEvents value varies
' on whether the selection is true (AccessibleEvents.SelectionAdd) or
' false (AccessibleEvents.SelectionRemove).
If m_selected Then
chart.ExposeAccessibilityNotifyClients(AccessibleEvents.SelectionAdd, _
CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
Else
chart.ExposeAccessibilityNotifyClients(AccessibleEvents.SelectionRemove, _
CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
End If
End If
End Set
End Property
' Gets the Size for the curve legend.
Public ReadOnly Property Size() As Size
Get
Dim legendHeight As Integer = chart.Font.Height + 4
Dim g As Graphics = chart.CreateGraphics()
Dim legendWidth As Integer = CInt(g.MeasureString(Name, chart.Font).Width) + 4
Return New Size(legendWidth, legendHeight)
End Get
End Property
' Inner class CurveLegendAccessibleObject represents accessible information
' associated with the CurveLegend object.
Public Class CurveLegendAccessibleObject
Inherits AccessibleObject
Private curveLegend As CurveLegend
Public Sub New(curveLegend As CurveLegend)
Me.curveLegend = curveLegend
End Sub
' Private property that helps get the reference to the parent ChartControl.
Private ReadOnly Property ChartControl() As ChartControlAccessibleObject
Get
Return CType(Parent, ChartControlAccessibleObject)
End Get
End Property
' Friend helper function that returns the ID for this CurveLegend.
Friend ReadOnly Property ID() As Integer
Get
Dim i As Integer
For i = 0 To (ChartControl.GetChildCount()) - 1
If ChartControl.GetChild(i) Is Me Then
Return i
End If
Next i
Return - 1
End Get
End Property
' Gets the Bounds for the CurveLegend. This is used by accessibility programs.
Public Overrides ReadOnly Property Bounds() As Rectangle
Get
' The bounds is in screen coordinates.
Dim loc As Point = curveLegend.Location
Return New Rectangle(curveLegend.chart.PointToScreen(loc), curveLegend.Size)
End Get
End Property
' Gets or sets the Name for the CurveLegend. This is used by accessibility programs.
Public Overrides Property Name() As String
Get
Return curveLegend.Name
End Get
Set
curveLegend.Name = value
End Set
End Property
' Gets the Curve Legend Parent's Accessible object.
' This is used by accessibility programs.
Public Overrides ReadOnly Property Parent() As AccessibleObject
Get
Return curveLegend.chart.AccessibilityObject
End Get
End Property
' Gets the role for the CurveLegend. This is used by accessibility programs.
Public Overrides ReadOnly Property Role() As AccessibleRole
Get
Return System.Windows.Forms.AccessibleRole.StaticText
End Get
End Property
' Gets the state based on the selection for the CurveLegend.
' This is used by accessibility programs.
Public Overrides ReadOnly Property State() As AccessibleStates
Get
Dim stateTemp As AccessibleStates = AccessibleStates.Selectable
If curveLegend.Selected Then
stateTemp = stateTemp Or AccessibleStates.Selected
End If
Return stateTemp
End Get
End Property
' Navigates through siblings of this CurveLegend. This is used by accessibility programs.
Public Overrides Function Navigate(navdir As AccessibleNavigation) As AccessibleObject
' Use the Friend NavigateFromChild helper function that exists
' on ChartControlAccessibleObject.
Return ChartControl.NavigateFromChild(Me, navdir)
End Function
' Selects or unselects this CurveLegend. This is used by accessibility programs.
Public Overrides Sub [Select](selection As AccessibleSelection)
' Use the internal SelectChild helper function that exists
' on ChartControlAccessibleObject.
ChartControl.SelectChild(Me, selection)
End Sub
End Class
End Class
End Class
End Namespace 'ChartControlNameSpace
備註
協助工具應用程式可以調整應用程式的功能,以改善殘障使用者的可用性。Accessibility applications can adjust features of the application to improve usability for users with disabilities.
對於視力受損的使用者,您可以調整軟體和作業系統功能,以符合他們的需求。For users who are visually impaired, you can adjust software and operating system features to comply with their needs. 例如,您可以放大文字和影像,並以對比呈現它們。For example, you can enlarge text and images and render them with a contrast. 此外,您可以使用色彩的適當用法來容納色盲。In addition, you can accommodate color-blindness with the appropriate use of colors. 對於嚴重視力受損的使用者,可以使用螢幕審核輔助來存取電腦,以將螢幕上的文字轉譯為語音或動態、可重新整理的盲文顯示器。For users who are severely visually impaired, computers are accessible with screen review aids that translate on-screen text to speech or to a dynamic, refreshable, Braille display.
針對很難聽到的使用者,您可以設計使用視覺提示的程式,例如閃爍的工具列;或者,您可以將說出的訊息顯示為文字。For users who are hard of hearing, you can design programs that use visual cues, such as a flashing toolbar; or you can display spoken messages as text. 例如,當開啟時, SoundSentry
功能(主控台中的協助工具選項)會在系統發出鬧鐘音效時,提供視覺警告。For example, when turned on, the SoundSentry
feature, an accessibility option in Control Panel, provides a visual warning whenever the system makes an alarm sound.
對於具有行動不便的使用者,您可以設計可精簡或消除鍵盤和滑鼠使用的控制項,進而改善電腦的協助工具。For users with motion disabilities, you can design controls that refine or eliminate keyboard and mouse use, thereby improving computer accessibility. 主控台可提供協助。Control Panel offers assistance. 例如,另一個替代方法是使用數位鍵台,而不是使用滑鼠進行導覽。For example, one alternative is to use the numeric keypad instead of the mouse for navigation. 另一個稱為的選項, StickyKeys
可讓使用者一次不能按住兩個或多個按鍵 (例如 CTRL + P) ,一次輸入一個按鍵即可取得相同的結果。Another option, called StickyKeys
, enables users who cannot hold down two or more keys at a time (such as CTRL+P) to get the same result by typing one key at a time.
針對具有認知和語言障礙的使用者,您可以設計軟體程式以更符合其需求。For users with cognitive and language disabilities, you can design software programs to better accommodate their needs. 例如,使用可疑或 cued 的排序、簡單的顯示、較少的單字,以及以基礎學校標準為目標的閱讀層級,都可以獲益于這些使用者。For example, using conspicuous or cued sequencing, uncomplicated displays, fewer words, and a reading level targeted to elementary school standards can benefit these users.
對於具有失常的使用者,您可以設計軟體程式,以消除誘發模式的取代。For users with seizure disorders, you can design software programs to eliminate seizure provoking patterns.
如需協助工具的詳細資訊,包括協助工具應用程式的相關資訊,請參閱 Windows 協助工具功能。For more information about accessibility, including information about accessibility applications, see Windows Accessibility features.
注意
若要使用 AccessibleObject ,您必須加入 Accessibility
與一起安裝之元件的參考 .NET Framework.NET Framework 。To use the AccessibleObject, you must add a reference to the Accessibility
assembly installed with the .NET Framework.NET Framework. Windows Forms 僅支援 Active Accessibility 2.0。Windows Forms only supports Active Accessibility 2.0.
給繼承者的注意事項
當您繼承自這個類別時,您可以覆寫所有成員。When you inherit from this class, you can override all the members.
建構函式
AccessibleObject() |
初始化 AccessibleObject 類別的新執行個體。Initializes a new instance of the AccessibleObject class. |
屬性
Bounds |
取得可存取物件的位置和大小。Gets the location and size of the accessible object. |
DefaultAction |
取得描述物件之預設動作的字串。Gets a string that describes the default action of the object. 並非所有的物件都有預設動作。Not all objects have a default action. |
Description |
取得描述指定物件之視覺外觀的字串。Gets a string that describes the visual appearance of the specified object. 並非所有的物件都有描述。Not all objects have a description. |
Help |
取得物件的用途或物件使用方式的描述。Gets a description of what the object does or how the object is used. |
KeyboardShortcut |
取得可存取物件的快速鍵或便捷鍵 (Access Key)。Gets the shortcut key or access key for the accessible object. |
Name |
取得或設定物件名稱。Gets or sets the object name. |
Parent |
取得可存取之物件的父系。Gets the parent of an accessible object. |
Role |
取得這個可存取之物件的角色。Gets the role of this accessible object. |
State |
取得這個可存取物件的狀態。Gets the state of this accessible object. |
Value |
取得或設定可存取物件的數值。Gets or sets the value of an accessible object. |
方法
CreateObjRef(Type) |
建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (繼承來源 MarshalByRefObject) |
DoDefaultAction() |
執行與這個可存取物件相關的預設動作。Performs the default action associated with this accessible object. |
Equals(Object) |
判斷指定的物件是否等於目前的物件。Determines whether the specified object is equal to the current object. (繼承來源 Object) |
GetChild(Int32) |
擷取與指定索引相對應的可存取子系。Retrieves the accessible child corresponding to the specified index. |
GetChildCount() |
擷取屬於可存取物件的子系數目。Retrieves the number of children belonging to an accessible object. |
GetFocused() |
擷取具有鍵盤焦點的物件。Retrieves the object that has the keyboard focus. |
GetHashCode() |
做為預設雜湊函式。Serves as the default hash function. (繼承來源 Object) |
GetHelpTopic(String) |
取得說明主題識別項的識別項,以及與這個可存取物件相關之通往說明檔的路徑。Gets an identifier for a Help topic identifier and the path to the Help file associated with this accessible object. |
GetLifetimeService() |
已過時。
擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。Retrieves the current lifetime service object that controls the lifetime policy for this instance. (繼承來源 MarshalByRefObject) |
GetSelected() |
擷取目前選取的子系。Retrieves the currently selected child. |
GetType() |
取得目前執行個體的 Type。Gets the Type of the current instance. (繼承來源 Object) |
HitTest(Int32, Int32) |
擷取位於指定螢幕座標的子物件。Retrieves the child object at the specified screen coordinates. |
InitializeLifetimeService() |
已過時。
取得存留期服務物件,以控制這個執行個體的存留期原則。Obtains a lifetime service object to control the lifetime policy for this instance. (繼承來源 MarshalByRefObject) |
MemberwiseClone() |
建立目前 Object 的淺層複製。Creates a shallow copy of the current Object. (繼承來源 Object) |
MemberwiseClone(Boolean) |
建立目前 MarshalByRefObject 物件的淺層複本。Creates a shallow copy of the current MarshalByRefObject object. (繼承來源 MarshalByRefObject) |
Navigate(AccessibleNavigation) |
可巡覽到另一個可存取物件。Navigates to another accessible object. |
RaiseAutomationNotification(AutomationNotificationKind, AutomationNotificationProcessing, String) |
引發使用者介面自動化通知事件。Raises the UI automation notification event. |
RaiseLiveRegionChanged() |
引發 LiveRegionChanged 使用者介面自動化事件。Raises the LiveRegionChanged UI automation event. |
Select(AccessibleSelection) |
修改選取或者移動可存取物件的鍵盤焦點。Modifies the selection or moves the keyboard focus of the accessible object. |
ToString() |
傳回代表目前物件的字串。Returns a string that represents the current object. (繼承來源 Object) |
UseStdAccessibleObjects(IntPtr) |
根據物件的控制代碼,將物件與 AccessibleObject 的執行個體產生關聯。Associates an object with an instance of an AccessibleObject based on the handle of the object. |
UseStdAccessibleObjects(IntPtr, Int32) |
根據物件的控制代碼和物件 ID,將物件與 AccessibleObject 的執行個體產生關聯。Associates an object with an instance of an AccessibleObject based on the handle and the object id of the object. |
明確介面實作
IAccessible.accChildCount |
取得屬於這個物件的子介面數目。Gets the number of child interfaces that belong to this object. 如需這個成員的說明,請參閱 accChildCount。For a description of this member, see accChildCount. |
IAccessible.accDoDefaultAction(Object) |
執行指定物件的預設動作。Performs the specified object's default action. 並非所有的物件都有預設動作。Not all objects have a default action. 如需這個成員的說明,請參閱 accDoDefaultAction(Object)。For a description of this member, see accDoDefaultAction(Object). |
IAccessible.accFocus |
取得具有鍵盤焦點的物件。Gets the object that has the keyboard focus. 如需這個成員的說明,請參閱 accFocus。For a description of this member, see accFocus. |
IAccessible.accHitTest(Int32, Int32) |
取得位於指定螢幕座標的子物件。Gets the child object at the specified screen coordinates. 如需這個成員的說明,請參閱 accHitTest(Int32, Int32)。For a description of this member, see accHitTest(Int32, Int32). |
IAccessible.accLocation(Int32, Int32, Int32, Int32, Object) |
取得物件的目前螢幕位置。Gets the object's current screen location. 如需這個成員的說明,請參閱 accLocation(Int32, Int32, Int32, Int32, Object)。For a description of this member, see accLocation(Int32, Int32, Int32, Int32, Object). |
IAccessible.accNavigate(Int32, Object) |
巡覽至相對於目前物件的可存取物件。Navigates to an accessible object relative to the current object. 如需這個成員的說明,請參閱 accNavigate(Int32, Object)。For a description of this member, see accNavigate(Int32, Object). |
IAccessible.accParent |
取得這個物件的可存取父物件。Gets the parent accessible object of this object. 如需這個成員的說明,請參閱 accParent。For a description of this member, see accParent. |
IAccessible.accSelect(Int32, Object) |
修改選取或者移動可存取物件的鍵盤焦點。Modifies the selection or moves the keyboard focus of the accessible object. 如需這個成員的說明,請參閱 accSelect(Int32, Object)。For a description of this member, see accSelect(Int32, Object). |
IAccessible.accSelection |
取得可存取物件的選定子物件。Gets the selected child objects of an accessible object. 如需這個成員的說明,請參閱 accSelection。For a description of this member, see accSelection. |
IReflect.GetField(String, BindingFlags) |
取得對應到指定欄位和繫結旗標的 FieldInfo 物件。Gets the FieldInfo object corresponding to the specified field and binding flag. 如需這個成員的說明,請參閱 GetField(String, BindingFlags)。For a description of this member, see GetField(String, BindingFlags). |
IReflect.GetFields(BindingFlags) |
取得對應到目前類別的所有欄位之 FieldInfo 物件陣列。Gets an array of FieldInfo objects corresponding to all fields of the current class. 如需這個成員的說明,請參閱 GetFields(BindingFlags)。For a description of this member, see GetFields(BindingFlags). |
IReflect.GetMember(String, BindingFlags) |
取得 MemberInfo 物件陣列,其會對應到所有公用成員或所有符合指定名稱的成員。Gets an array of MemberInfo objects corresponding to all public members or to all members that match a specified name. 如需這個成員的說明,請參閱 GetMember(String, BindingFlags)。For a description of this member, see GetMember(String, BindingFlags). |
IReflect.GetMembers(BindingFlags) |
取得 MemberInfo 物件陣列,其會對應到所有公用成員或目前類別的所有成員。Gets an array of MemberInfo objects corresponding either to all public members or to all members of the current class. 如需這個成員的說明,請參閱 GetMembers(BindingFlags)。For a description of this member, see GetMembers(BindingFlags). |
IReflect.GetMethod(String, BindingFlags) |
取得 MethodInfo 物件,其會對應到指定搜尋條件約束下的指定方法。Gets a MethodInfo object corresponding to a specified method under specified search constraints. 如需這個成員的說明,請參閱 GetMethod(String, BindingFlags)。For a description of this member, see GetMethod(String, BindingFlags). |
IReflect.GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[]) |
使用 Type 陣列從多載方法中選擇,取得對應到指定方法的 MethodInfo 物件。Gets a MethodInfo object corresponding to a specified method, using a Type array to choose from among overloaded methods. 如需這個成員的說明,請參閱 GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])。For a description of this member, see GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[]). |
IReflect.GetMethods(BindingFlags) |
取得包含所有公用方法或目前類別的所有方法的 MethodInfo 物件陣列。Gets an array of MethodInfo objects with all public methods or all methods of the current class. 如需這個成員的說明,請參閱 GetMethods(BindingFlags)。For a description of this member, see GetMethods(BindingFlags). |
IReflect.GetProperties(BindingFlags) |
取得 PropertyInfo 物件陣列,其會對應到所有公用屬性或目前類別的所有屬性。Gets an array of PropertyInfo objects corresponding to all public properties or to all properties of the current class. 如需這個成員的說明,請參閱 GetProperties(BindingFlags)。For a description of this member, see GetProperties(BindingFlags). |
IReflect.GetProperty(String, BindingFlags) |
取得 PropertyInfo 物件,其會對應到指定搜尋條件約束下的指定屬性。Gets a PropertyInfo object corresponding to a specified property under specified search constraints. 如需這個成員的說明,請參閱 GetProperty(String, BindingFlags)。For a description of this member, see GetProperty(String, BindingFlags). |
IReflect.GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) |
取得 PropertyInfo 物件,其會對應到具有指定搜尋條件約束的指定屬性。Gets a PropertyInfo object corresponding to a specified property with specified search constraints. 如需這個成員的說明,請參閱 GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])。For a description of this member, see GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]). |
IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) |
叫用指定成員。Invokes a specified member. 如需這個成員的說明,請參閱 InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])。For a description of this member, see InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). |
IReflect.UnderlyingSystemType |
取得表示 IReflect 物件的基礎型別。Gets the underlying type that represents the IReflect object. 如需這個成員的說明,請參閱 UnderlyingSystemType。For a description of this member, see UnderlyingSystemType. |