AccessibleObject 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
접근성 애플리케이션이 장애가 있는 사용자를 위해 애플리케이션 UI(사용자 인터페이스)를 조정하는 데 사용하는 정보를 제공합니다.
public ref class AccessibleObject : MarshalByRefObject, Accessibility::IAccessible, System::Reflection::IReflect
public ref 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
[System.Runtime.InteropServices.ComVisible(true)]
public class AccessibleObject : System.Runtime.InteropServices.StandardOleMarshalObject, Accessibility.IAccessible, System.Reflection.IReflect
public class AccessibleObject : System.Runtime.InteropServices.StandardOleMarshalObject, Accessibility.IAccessible, System.Reflection.IReflect
[<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
[<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
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
type AccessibleObject = class
inherit StandardOleMarshalObject
interface IReflect
interface IAccessible
interface Interop.UiaCore.IAccessibleEx
interface IServiceProvider.Interface
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 IEnumVARIANT.Interface
interface IOleWindow.Interface
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
type AccessibleObject = class
inherit StandardOleMarshalObject
interface IReflect
interface IAccessible.Interface
interface IAccessible
interface IAccessibleEx.Interface
interface IServiceProvider.Interface
interface IRawElementProviderSimple.Interface
interface IRawElementProviderFragment.Interface
interface IRawElementProviderFragmentRoot.Interface
interface IInvokeProvider.Interface
interface IValueProvider.Interface
interface IRangeValueProvider.Interface
interface IExpandCollapseProvider.Interface
interface IToggleProvider.Interface
interface ITableProvider.Interface
interface ITableItemProvider.Interface
interface IGridProvider.Interface
interface IGridItemProvider.Interface
interface IEnumVARIANT.Interface
interface IOleWindow.Interface
interface ILegacyIAccessibleProvider.Interface
interface ISelectionProvider.Interface
interface ISelectionItemProvider.Interface
interface IRawElementProviderHwndOverride.Interface
interface IScrollItemProvider.Interface
interface IMultipleViewProvider.Interface
interface ITextProvider.Interface
interface ITextProvider2.Interface
interface IDispatch.Interface
interface IDispatchEx.Interface
Public Class AccessibleObject
Inherits MarshalByRefObject
Implements IAccessible, IReflect
Public Class AccessibleObject
Inherits StandardOleMarshalObject
Implements IAccessible, IReflect
- 상속
- 상속
- 파생
- 특성
- 구현
예제
다음 코드 예제에서는 내게 필요한 옵션 인식 차트를 만드는 방법을 보여 줍니다 컨트롤을 사용 하 여 AccessibleObject 및 Control.ControlAccessibleObject 액세스할 수 있는 정보를 노출 하는 클래스입니다. 컨트롤은 범례를 따라 두 곡선을 그립니다. 합니다 ChartControlAccessibleObject
클래스에서 파생 되는 ControlAccessibleObject
에 사용 되는 CreateAccessibilityInstance 차트 컨트롤에 대 한 사용자 지정 액세스할 수 있는 정보를 제공 하는 방법입니다. 차트 범례는 실제 Control 기반 컨트롤이 아니라 차트 컨트롤에 의해 그려지므로 기본 제공 액세스 가능한 정보가 없습니다. 이 인해 합니다 ChartControlAccessibleObject
재정의 클래스를 GetChild 반환 하는 방법은 CurveLegendAccessibleObject
범례의 각 부분에 액세스할 수 있는 정보를 나타내는입니다. 인식 액세스할 수 있는 애플리케이션에서이 컨트롤을 사용 하는 경우 컨트롤이 필요한 액세스할 수 있는 정보를 제공할 수 있습니다.
#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
설명
접근성 애플리케이션이 장애가 있는 사용자에 대 한 유용성을 개선 하기 위해 애플리케이션의 기능을 조정할 수 있습니다.
시각 장애가 있는 사용자의 경우 소프트웨어 및 운영 체제 기능을 조정하여 요구 사항을 준수할 수 있습니다. 예를 들어 텍스트와 이미지를 확대하고 대비로 렌더링할 수 있습니다. 또한 적절한 색 사용으로 색맹을 수용할 수 있습니다. 시각 장애가 있는 사용자의 경우 화면 텍스트를 음성으로 변환하거나 동적이고 새로 고칠 수 있는 점자 디스플레이로 변환하는 화면 검토 보조 기능을 사용하여 컴퓨터에 액세스할 수 있습니다.
청각이 어려운 사용자의 경우 깜박이는 도구 모음과 같은 시각적 신호를 사용하는 프로그램을 디자인할 수 있습니다. 또는 음성 메시지를 텍스트로 표시할 수 있습니다. 예를 들어, 켜지면 SoundSentry
제어판 접근성 옵션인 이 기능은 시스템에서 알람 소리를 낼 때마다 시각적 경고를 제공합니다.
동작 장애가 있는 사용자의 경우 키보드 및 마우스 사용을 구체화하거나 제거하는 컨트롤을 디자인하여 컴퓨터 접근성을 향상시킬 수 있습니다. 제어판 지원을 제공합니다. 예를 들어 한 가지 대안은 탐색을 위해 마우스 대신 숫자 키패드를 사용하는 것입니다. 라는 StickyKeys
또 다른 옵션을 사용하면 한 번에 두 개 이상의 키(예: Ctrl+P)를 누를 수 없는 사용자가 한 번에 하나의 키를 입력하여 동일한 결과를 얻을 수 있습니다.
인지 및 언어 장애가 있는 사용자의 경우 요구 사항을 더 잘 수용하도록 소프트웨어 프로그램을 디자인할 수 있습니다. 예를 들어 눈에 띄거나 큐에 추가된 시퀀싱, 복잡하지 않은 디스플레이, 더 적은 단어 및 초등학교 표준을 대상으로 하는 읽기 수준을 사용하면 이러한 사용자에게 도움이 될 수 있습니다.
발작 장애가 있는 사용자의 경우 발작 유발 패턴을 제거하기 위해 소프트웨어 프로그램을 설계할 수 있습니다.
접근성 애플리케이션에 대한 정보를 포함하여 접근성에 대한 자세한 내용은 Windows 접근성 기능을 참조하세요.
참고
를 AccessibleObject사용하려면 .NET Framework 함께 설치된 어셈블리에 대한 참조 Accessibility
를 추가해야 합니다. Windows Forms 활성 접근성 2.0만 지원합니다.
상속자 참고
이 클래스에서 상속하는 경우 모든 멤버를 재정의할 수 있습니다.
생성자
AccessibleObject() |
AccessibleObject 클래스의 새 인스턴스를 초기화합니다. |
속성
Bounds |
내게 필요한 옵션 지원 개체의 위치와 크기를 가져옵니다. |
DefaultAction |
개체의 기본 작업을 설명하는 문자열을 가져옵니다. 모든 개체마다 기본 작업이 있는 것은 아닙니다. |
Description |
지정한 개체의 시각적 모양을 설명하는 문자열을 가져옵니다. 모든 개체에 설명이 있는 것은 아닙니다. |
Help |
개체의 역할이나 개체의 사용 방법에 대한 설명을 가져옵니다. |
KeyboardShortcut |
액세스 가능 개체의 바로 가기 키나 선택키를 가져옵니다. |
Name |
개체 이름을 가져오거나 설정합니다. |
Parent |
내게 필요한 옵션 지원 개체의 부모를 가져옵니다. |
Role |
이 액세스 가능성 개체의 역할을 가져옵니다. |
State |
이 액세스 가능 개체의 상태를 가져옵니다. |
Value |
액세스 가능 개체의 값을 가져오거나 설정합니다. |
메서드
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
DoDefaultAction() |
이 액세스 가능 개체에 연결된 기본 동작을 수행합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetChild(Int32) |
지정된 인덱스에 해당하는 액세스 가능한 자식을 검색합니다. |
GetChildCount() |
액세스 가능한 개체에 속하는 자식 수를 검색합니다. |
GetFocused() |
키보드 포커스를 갖는 개체를 검색합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetHelpTopic(String) |
도움말 항목 식별자에 대한 식별자와 이 액세스 가능 개체에 연결된 도움말 파일의 경로를 가져옵니다. |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetSelected() |
현재 선택된 자식을 검색합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
HitTest(Int32, Int32) |
지정된 화면 좌표에 있는 자식 개체를 검색합니다. |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
Navigate(AccessibleNavigation) |
다른 내게 필요한 옵션 지원 개체를 탐색합니다. |
RaiseAutomationNotification(AutomationNotificationKind, AutomationNotificationProcessing, String) |
UI 자동화 알림 이벤트를 발생시킵니다. |
RaiseLiveRegionChanged() |
LiveRegionChanged UI 자동화 이벤트를 발생시킵니다. |
Select(AccessibleSelection) |
선택을 수정하거나 액세스 가능 개체의 키보드 포커스를 이동합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
UseStdAccessibleObjects(IntPtr) |
개체의 핸들을 기준으로 AccessibleObject의 인스턴스와 개체를 연결합니다. |
UseStdAccessibleObjects(IntPtr, Int32) |
개체의 개체 ID와 핸들을 기준으로 AccessibleObject의 인스턴스와 개체를 연결합니다. |
명시적 인터페이스 구현
적용 대상
.NET