반응형
WPF: DockPanel에서 중간 아이를 스트레칭하려면 어떻게 해야 하나요?
RadioButton 요소에 DockPanel을 추가하여 라디오 버튼 라벨, 텍스트 박스, 버튼을 100% 폭의 수평으로 배포할 수 있도록 했습니다.
사용.LastChildFill="True"
마지막 요소를 늘립니다.텍스트 상자가 패널의 마지막 자식일 경우 이 작업이 올바르게 수행됩니다.그러나 버튼이 마지막 요소이고 너비가 고정되어 있기 때문에 텍스트 상자를 늘려야 합니다.하지만 그런 성질은 없습니다.2ndChildFill="True"
.
코드는 다음과 같습니다.
<RadioButton HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch">
<DockPanel >
<TextBlock VerticalAlignment="Center">in location:</TextBlock>
<TextBox Grid.Column="1" Margin="10,0,0,0">Path string</TextBox>
<Button HorizontalAlignment="Right"
Margin="10,0,0,0" Padding="3,0">...</Button>
</DockPanel>
</RadioButton>
그리고 이건 내게 주는 거야:
이 문제를 해결할 수 있는 힌트라도 있나요?잘 부탁드립니다.
요소에 연결된 속성을 설정한 후 떠나야 합니다.TextBox
마지막 요소로서:
<RadioButton HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch">
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Left"
VerticalAlignment="Center"
Text="in location:" />
<Button DockPanel.Dock="Right"
Margin="10,0,0,0"
Padding="3,0"
Content="..." />
<TextBox Margin="10,0,0,0">
Path string
</TextBox>
</DockPanel>
</RadioButton>
수용된 답변은 문제를 수정하는 것이지만 다른 문제를 만드는 것입니다.키보드를 사용하는 경우(TAB
인터페이스를 네비게이트 하려면 ,Button
에 초점을 맞춘다.TextBox
장기적으로는 매우 귀찮을 수 있습니다.탭 주문을 중단하지 않으려면 다음을 사용하십시오.Grid
대신DockPanel
:
<RadioButton HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" VerticalAlignment="Center">in location:</TextBlock>
<TextBox Grid.Column="1" Margin="10,0,0,0">Path string</TextBox>
<Button Grid.Column="2" HorizontalAlignment="Right" Margin="10,0,0,0" Padding="3,0">...</Button>
</Grid>
</RadioButton>
다른 방법은 다음을 사용하여 탭 주문을 직접 제어하는 것입니다.TabIndex
기여하다.이 작업은 특히 컬렉션에서 컨트롤을 표시할 때 까다로울 수 있습니다.
<RadioButton HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" TabIndex="0">
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" Text="in location:" />
<Button DockPanel.Dock="Right" Margin="10,0,0,0" Padding="3,0" Content="..." TabIndex="2"/>
<TextBox Margin="10,0,0,0" TabIndex="1">Path string</TextBox>
</DockPanel>
</RadioButton>
언급URL : https://stackoverflow.com/questions/14034674/wpf-how-can-i-stretch-the-middle-child-in-a-dockpanel
반응형
'programing' 카테고리의 다른 글
ASP.NET "특수" 태그 (0) | 2023.04.20 |
---|---|
기다림과 수면의 차이 (0) | 2023.04.20 |
로컬 html 파일을 UI WebView에 로드하는 방법 (0) | 2023.04.20 |
명령 프롬프트에서 공백을 사용하려면 어떻게 해야 합니까? (0) | 2023.04.15 |
긴 형식의 printf 변환 지정자는 무엇입니까? (0) | 2023.04.15 |