창을 띄우면 새창이 안뜨고 창안에서 좀 간지나게 띄운다. 창안에 뜬 창은 드래그가 가능한다. 코딩한줄 안하고
Blend 에서 Rectangle 을 뒤에 깐다(뒤에 어두운 배경)
앞에 마우스 드래그가 가능하게 Canvas 안에 StackPanel 을 넣어뒀다
나는 StackPanel 안에 컨트롤을 바인딩해서 돌려 쓸려고 …..
암튼 움직이게 할 컨트롤을 선택한다.
도구에서
MouseDragElementBehavior를 선택해서 흰색창에 끌어다 놓는다.
비헤비어가 먹혔다. 이걸로 끗
좀만 손보면 이쁘다
헉! 배경창으로 밖으로 나간다.
이럴땐… ConstarinToParntBounds 체크를 해주면 회색배경 안에서만 논다.
팝업창을 가운데 띄우자
팝업창이 뜰때 암때나 뜨지말고 가운데 띄워서 더 이쁘게 ~
설명은 주석으로 끗
/// <summary> /// PopupSelectUI.xaml에 대한 상호 작용 논리 /// </summary> public partial class PopupSelectUI : UserControl { double h; double w; public PopupSelectUI() { InitializeComponent(); Debug.WriteLine(this.IsLoaded); this.Loaded += new RoutedEventHandler(PopupSelectUI_Loaded); } void PopupSelectUI_Loaded(object sender, RoutedEventArgs e) { SetCenter(); } /// <summary> /// 움직이게 할 컨트롤을 바인딩합니다. /// </summary> /// <param name="fe"></param> public void SetUIContent(FrameworkElement fe) //컨버스 안에 붙는 컨트롤 { h = fe.Height; //컨트롤 가로 세로 높이 w = fe.Width; this.StpDrag.Children.Add(fe); } public void SetCenter() { this.UpdateLayout(); double ContentGanvash = this.MainCanvas.ActualHeight; //MainCanvas 는 드래그창을 감싸는 캔버스 double ContentGanvasw = this.MainCanvas.ActualWidth; double winl = (ContentGanvasw - w) / 2; double wint = (ContentGanvash - h) / 2; StpDrag.SetValue(Canvas.TopProperty, wint); StpDrag.SetValue(Canvas.LeftProperty, winl); } private void StpDrag_MouseMove(object sender, MouseEventArgs e) { Debug.WriteLine(this.MainCanvas.ActualHeight); } }
'WPF' 카테고리의 다른 글
[WPF AutoComplateBox / ToolKit] 초간단 자동완성 구현하기 (0) | 2010.12.23 |
---|---|
[WPF ToolKit] WPF 툴킷 /Extended 툴킷 다운로드 (0) | 2010.12.23 |
[WPF Key.Enter]엔터키 이동 (0) | 2010.12.22 |
[WPF Ribbon 컨트롤] Windows Xp 오류 문제 (0) | 2010.12.17 |
[DataGridCell / Setter ] 특정 Cell 만 변경하기 (0) | 2010.11.26 |
WPF Dialog Box/ ValidationRule 파일열기 유효성검사 (0) | 2010.10.20 |
[ADO.NET Entity Data Model ]실버라이트 초간단 데이터 바인딩 (0) | 2010.10.14 |
[VisualTreeHelper] 부모컨트롤 찾기 / 자식컨트롤 찾기 (0) | 2010.09.16 |
[DependencyObject.GetValue] 사용하기 (0) | 2010.09.16 |
[Blend4 / DataGrid / DataTemplate / CellEditingTemplate / Edit] 데이터그리드 편집모드 사용하기 (0) | 2010.09.16 |