사용자 도구

사이트 도구


sdk:wpf:코드_조각

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
sdk:wpf:코드_조각 [2017/07/11 15:26] kieunssdk:wpf:코드_조각 [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +====== Stack Panel ======
 +
 +스크롤 기능을 추가하려면 ScrollViewer 를 패널 바깥쪽에 추가한다.
 +
 +<code csharp>
 +<ScrollViewer VerticalScrollBarVisibility="Auto">
 +    <StackPanel ScrollViewer.VerticalScrollBarVisibility="Auto" CanVerticallyScroll="True" ScrollViewer.CanContentScroll="True">
 +    </StackPanel>
 +</ScrollViewer>
 +</code>
 +
 +StackPanel 크기를 넘는 컨트롤이 추가되면 스크롤 바가 보인다.
 +
 +====== Common Dialog ======
 +
 +쉬운 해결책 : System.Windows.Forms 를 가져다 쓴다.
 +
 +방법:
 +  * 프로젝트 선택 -> 추가 -> 참조 -> System.Windows.Forms 선택
 +  * Forms에 있는 CommonDialog를 사용한다.
 +
 +CommonDialog를 대부분 포함하는 라이브러리를 쓴다
 +
 +  * [[http://www.ookii.org/software/dialogs/|Ookii Dialog]] : 다운 받아서 사용
 +
 +Win32 CommonDialog를 쓴다
 +
 +  * 왠지 사서 고생하는 느낌
 +  * [[https://www.codeproject.com/Articles/14239/Using-SHBrowseForFolder-in-NET|Using SHBrowseForFolder in .NET]]
 +
 +폴더 선택하는 대화상자를 띄우는 여러가지 논의
 +
 +  * [[https://stackoverflow.com/questions/4007882/select-folder-dialog-wpf|Select folder dialog WPF]]
 +
 +  왜 CommonDialog 인터페이스를 안만들었데..
 +  
 +====== ListBox ======
 +
 +아이템 선택시, 호출할 스크립트 (메소드) 
 +
 +<code xml>
 +<ListBox SelectionChanged="ChangeThickness">
 +  <ListBoxItem>0</ListBoxItem>
 +  <ListBoxItem>5</ListBoxItem>
 +</ListBox>
 +</code>
 +
 +<code csharp>
 +public partial class MainWindow : Window
 +{
 +    // 샘플로 이렇게 저렇게
 +    private void ChangeThickness(object sender, SelectionChangedEventArgs args)
 +    {
 +        var li = ((sender as ListBox).SelectedItem as ListBoxItem);
 +    }
 +}
 +</code>
 +
 +====== ListView ======
 +
 +===== 데이터 추가 =====
 +
 +쉬운 접근 : **ItemsSource** 에 List<//CustomClass//> 콜렉션을 등록한다.
 +
 +<code csharp>
 +// lv_sample 이 xaml 형식 파일로 ListView가 추가 되어 있는 경우
 +ListView lv_sample;
 +List<CustomClass> _items = new List<CustomClass>();
 +lv_sample.ItemsSource = _items;
 +</code>
 +
 +===== 헤더 추가 =====
 +
 +헤더를 추가하고 바인딩하는 예 : [[https://msdn.microsoft.com/ko-kr/library/system.windows.controls.listview.view(v=vs.110).aspx|ListView.View 속성]]
 +
 +<code csharp>
 +ListView myListView = new ListView();
 +
 +GridView myGridView = new GridView();
 +myGridView.AllowsColumnReorder = true; 
 +myGridView.ColumnHeaderToolTip = "Employee Information";
 +
 +GridViewColumn gvc1 = new GridViewColumn();
 +gvc1.DisplayMemberBinding = new Binding("FirstName");
 +gvc1.Header = "FirstName";
 +gvc1.Width = 100;
 +myGridView.Columns.Add(gvc1);
 +GridViewColumn gvc2 = new GridViewColumn();
 +gvc2.DisplayMemberBinding = new Binding("LastName");
 +gvc2.Header = "Last Name";
 +gvc2.Width = 100;
 +myGridView.Columns.Add(gvc2);
 +GridViewColumn gvc3 = new GridViewColumn();
 +gvc3.DisplayMemberBinding = new Binding("EmployeeNumber");
 +gvc3.Header = "Employee No.";
 +gvc3.Width = 100;
 +myGridView.Columns.Add(gvc3);
 +
 +//ItemsSource is ObservableCollection of EmployeeInfo objects
 +myListView.ItemsSource = new myEmployees();
 +myListView.View = myGridView;
 +myStackPanel.Children.Add(myListView);
 +</code>
 +
 +
 +
 +
 +
 +
 +
 +