2012-05-23 2 views
2

좋습니다 가능한 한 최선의 방법을 시도해 보겠습니다.불투명도 변경에 사용할 송신 컨트롤의 이름 속성 가져 오기

"HandleGraphic"메서드가 있습니다. 이 메소드는 로그 함수를 통해 주어진 컨트롤의 불투명도를 처리합니다.

방법 매개 변수

은 다음과 같습니다 : I 캐스팅 어떻게 직접 값/속성의 조작 할 수 있도록로/같은 방식으로 SendingObject 바인딩 :

내 질문은 (SendingObject,에서 부동 개체에 떠) ?

예 : 텍스트 상자에서 HandleGraphic 메서드를 호출한다고 가정 해보십시오. HandleGraphic은 송신 컨트롤의 Name 속성 인 "txtbox"를 사용하여 Opacity 속성을 조정해야합니다.

호출 개체의 속성에 직접 액세스하기 위해 캐스팅 또는 바인딩의 전역 함수를 구현하는 방법이 있어야합니다. 예를 들어

: 어떤 도움이 많이 주시면 감사하겠습니다 SendingObject.Opacity = X;

.

답변

0

WPF (WinForms 컨트롤에 불투명도 속성이 없음)의 경우 이름 및 불투명도 속성은 모두 Control (특히 System.Windows.Controls.Control)의 멤버입니다. 왜 HandleGraphic의 서명을 (제어 제어, 부동에서 부동로) 변경하지 않습니까? 모든 컨트롤은 Control에서 파생되므로 해당 메서드에 컨트롤을 전달할 수 있습니다.

보정

Name 속성 FrameworkElement의 부재이며 Opacity 속성 UIElement의 부재이다. 이름과 불투명도 속성을 모두 사용하려면 최소 FrameworkElement이 필요합니다. Control은 여전히 ​​귀하의 목적에 부합하지만, 가장 낮은 공통 분모를 목표로 할 수 있습니다. 예를 들어 TextBlockControl이 아니며 FrameworkElement에서 직접 파생됩니다.

WPF에서 컨트롤의 계층 구조는 다음과 같습니다가 복잡해진다

Object 
DispatcherObject 
DependencyObject 
Visual 
UIElement 
FrameworkElement 
Control 

거기에서. 예를 들어 :

Button : ButtonBase : ContentControl : Control 
TextBox : TextBoxBase : Control 
ComboBox : Selector : ItemsControl : Control 
DataGrid : MultiSelector : Selector : ItemsControl : Control 

그러나 그들은 모두 FrameworkElement에서 파생 Control에서 파생.

형식의 상속을 찾는 가장 간단한 방법은 코드의 형식에 캐럿을 넣고 F12 키를 누르는 것입니다. 이렇게하면 유형 (또는 사용 가능한 경우 실제 코드)을 설명하는 의사 코드가 제공되고 기본 클래스를 동일한 방식으로 탐색 할 수 있습니다.

+0

예 여기가 필요합니다. 감사합니다. – Medismal

+0

@Medismal 자세한 내용은 업데이트를 확인하십시오. – Tergiver