2016-09-13 9 views
0

코드에서 XAML이없는 How to make WPF TreeView style as WinForms TreeView?을 어떻게 처리 할 수 ​​있습니까? 이렇게해야하는 이유는 내가 주어진 TreeView는 코드에 정의되어 있으므로 XAML이 전혀 없다는 것입니다. XAML로 시작할 수는 있지만, 처음에는 XAML을 추가하지 않는 방법에 'XAML을 추가하는 방법을 알지 못합니다. 저는 WPF에 매우 익숙하지만 수년간 Winforms를 해왔습니다. TreeView는 Header 및 Tag 값을 가진 TreeViewItem 객체의 큰 계층으로 만 구성됩니다.프로그래밍 방식으로 WPF TreeView에 연결 추가 (XAML 없음)

답변

0

당신은 당신이에 링크 된 기사에 대한 답을 보면, 그것은 다음과 같이 정의 된 TreeViewItem 스타일의 자세한 사항 : -

<Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}"> 

은 x : 키가 대상 유형으로 설정 (또는 완전히 생략)한다 스타일은 해당 컨트롤 유형의 응용 프로그램 기본값이되어야합니다.

해당 기사의 답변에 설명 된 스타일을 App.xaml 파일에 추가하면 응용 프로그램 전체의 모든 TreeViewItem이 이어야합니다.이 기본 스타일을 유지해야합니다.

그래도 해결되지 않으면 한 가지 더 시도해보십시오. 코드에서 다음

<Style x:Key="WindowsTreeViewItemStyle" TargetType="{x:Type TreeViewItem}"> 

TreeView의에서 TreeViewItems을 반복하고 프로그램 하나 하나에 스타일을 할당 : - -을 : 문자열 예에 스타일의 키를 변경

var style = (Style)Application.Current.FindResource("WindowsTreeViewItemStyle"); 

foreach (var treeViewItem in ...) 
{ 
    treeviewitem.Style = style; 
} 

(사용 이 기사의 XAML에 대한 책임은 사용자 자신에게 있습니다. 완전한 소스 우편에 대한 링크는 죽었으며 그의 SO 응답에 자세한 내용은 불완전 할 수 있습니다!)

+0

저는 App.xaml 파일이 없습니다. 내가 가지고있는 것은 사용자 정의를위한 어셈블리와 클래스를 지정할 수있는 '후크 (hooks)'가있는 큰 응용 프로그램입니다. 나는 순수한 코드로 그것을 사용자 정의 할 수 있었다. XAML과 코드 간의 연결을 강제로 수행하는 방법을 알지 못합니다. 실제로이 연결이 어떻게 자연스럽게 발생하는지 이해하지 못하기 때문입니다. 귀하의 대답에서 App.xaml에 액세스 할 수 없다면 XAML을 어디에 둘 것인지 알 수 없습니다. 내가 가지고있는 것은 컴파일 된 .Net 어셈블리 집합이며 그 중 일부는 기본 응용 프로그램에 의해로드되는 자체 파일입니다. – MikeGeek