WPF 창의 시작 위치 변경
화면 우측 상단에 WPF 창을 열고 싶습니다.
지금은 창을 열고 (user32.dll의 move window를 통해) 이동하면 됩니다.그러나 이 접근 방식은 창이 기본 위치에서 열리고 완전히 로드된 다음 오른쪽 상단으로 이동함을 의미합니다.
윈도우의 초기 위치와 크기를 지정할 수 있도록 변경하려면 어떻게 해야 합니까?
xaml에서 Window Startup Location, 높이, 폭, 왼쪽 및 위쪽을 설정하십시오.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
Height="500" Width="500"
WindowStartupLocation="Manual"
Left="0" Top="0">
</Window>
사용하는 것을 좋아합니다.WindowStartupLocation="CenterOwner"
(MSDN 문서)
다만, 다음과 같이, 발신자가 자신을 오너로서 지정할 필요가 있습니다.
new MyWindow() { Owner = this }.ShowDialog();
그런 다음 창 높이와 너비를 정의하십시오. 예:
<Window ...
Height="400" Width="600"
WindowStartupLocation="CenterOwner"
>
...
저를 좋아하는 사람들은 창의 위치를 현재 마우스 위치로 설정하고 싶을 때 다음과 같이 할 수 있습니다.
myWindow.WindowStartupLocation = WindowStartupLocation.Manual;
myWindow.Left = PointToScreen(Mouse.GetPosition(null)).X;
myWindow.Top = PointToScreen(Mouse.GetPosition(null)).Y;
Window에 대한 속성이 있습니다."WindowStartupLocation"
속성 창에서 찾을 수 있습니다.생성자에서 Window를 선택한 다음 속성 목록으로 이동하기만 하면 됩니다.검색(Search(검색)"Startup"
비슷하거나 비슷하면 그 특성을 찾을 수 있습니다.로 변경하다"CenterScreen"
그러면 거래가 성사될 거야참고! 창 대신 그리드를 선택하지 않았는지 확인하십시오!그렇지 않으면 실패할 것이다.
아니면 XAML 편집을 통해서도 가능합니다.
다음과 같은 작업을 수행할 수 있었습니다(화면에 다른 위치가 표시됨).
<Window x:Class="BtnConfig.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BtnConfig"
mc:Ignorable="d"
Title="MainWindow" Height="142.802" Width="448.089"
Top="288" Left="0">
</Window>
다음 항목은 포함되지 않습니다.
WindowStartupLocation="Manual"
내 경우 "검색" 도구 상자를 리치 텍스트 상자 컨트롤의 오른쪽 상단 모서리에 표시해야 합니다.
이 작업은 다음 코드로 수행합니다.
// Assumes variable: RichTextBox m_Box, Window m_FindWordDialog
m_FindWordDialog.Show( ); // Let dialog show itself first
// Note: I had to use ActualWidth because m_Box.Width somehow is (NaN) in my case
// Not tested in different DPI.
Point locationFromScreen = m_Box.PointToScreen( new Point(m_Box.ActualWidth, 0) );
m_FindWordDialog.Left = locationFromScreen.X - m_FindWordDialog.Width;
m_FindWordDialog.Top = locationFromScreen.Y;
내 검색 창 XAML에는 다음과 같은 속성이 있습니다.
WindowStartupLocation="Manual" Left="0" Top="0"
초기 위치에 잠깐 나타나서 조금 뛰지만, 저는 견딜 수 있습니다.사실 어떤 값이라도 상관없습니다.WindowStartupLocation="CenterOwner"
부모 중심에서 뛰어내릴 뿐이죠또는 수동 모드를 사용하여 멀리 떨어진 위치에서 시작하여 사용자에게 점프하는 모습을 보이지 않도록 할 수도 있습니다.
바탕화면 위치에 상대적으로 표시되도록 하려면 화면 작업영역 위치를 가져오면 다음을 확인할 수 있습니다.WPF 창의 위치를 데스크톱 오른쪽 아래 구석에 설정하는 방법
언급URL : https://stackoverflow.com/questions/1545258/changing-the-start-up-location-of-a-wpf-window
'programing' 카테고리의 다른 글
읽기 전용 GUI 속성을 ViewModel로 되돌리는 중 (0) | 2023.04.13 |
---|---|
Intelij 터미널에서 git 설정 (0) | 2023.04.13 |
EPPlus와 MemoryStream의 사용 (0) | 2023.04.13 |
최신 커밋에서 파일 제거 (0) | 2023.04.13 |
컬러 코드를 미디어로 변환하는 방법.빗질? (0) | 2023.04.13 |