는 팀 이름에 대한 특정 모양을 원하고 점수 :Viewbox의 ColumnDefinition.Width가 Auto로 설정되어 있습니까? 나는 클라이언트를 구축 있어요 점수 판 앱
내가 UI에 다양한 장소에서 다음을 사용할 필요가 있기 때문에, 나는 '생각 UserControl로 래핑하십시오. 여기에 (크게 실제에서 단순화 된) 위의 이미지에 대한 XAML의 :
,이 질문의 목적을 위해,주의하는 것이 중요 무엇<UserControl x:Class="Scoreboard.TeamNameAndScoreControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Scoreboard"
mc:Ignorable="d"
d:DesignHeight="30" d:DesignWidth="100">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Label
Name="TeamName"
BorderBrush="AliceBlue"
BorderThickness="1"
Content="WEST"
FontSize="20"
Padding="0"
Background="Gray"
FontWeight="Bold"
HorizontalContentAlignment="Center"
/>
<Label
Name="Score"
BorderBrush="AliceBlue"
BorderThickness="1"
Content="2"
Grid.Column="1"
Padding="0"
Background="White"
FontSize="20"
FontWeight="Bold"
HorizontalContentAlignment="Center"
/>
</Grid>
</UserControl>
그 TeamName 및 점수의 5-2 비례 크기 조정 라벨이 중요합니다.
이 컨트롤을 사용하려는 앱 UI 내의 일부 위치가 다르게 크기 때문에 창 크기 변경에 비례하여 응답하는 컨트롤이 필요하기 때문에 Viewbox에서 그리드를 래핑하는 것으로 생각했습니다 :
<UserControl x:Class="Scoreboard.TeamNameAndScoreControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Scoreboard"
mc:Ignorable="d"
d:DesignHeight="30" d:DesignWidth="100">
<Viewbox>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Label
BorderBrush="AliceBlue"
BorderThickness="1"
Content="WEST"
FontSize="20"
Padding="0"
Background="Gray"
FontWeight="Bold"
HorizontalContentAlignment="Center"
/>
<Label
BorderBrush="AliceBlue"
BorderThickness="1"
Content="2"
Grid.Column="1"
Padding="0"
Background="White"
FontSize="20"
FontWeight="Bold"
HorizontalContentAlignment="Center"
/>
</Grid>
</Viewbox>
</UserControl>
문제 뷰 박스로 포장 할 때 결과는 다음과 같습니다 있도록 그리드가 효과적으로 "자동"으로 ColumnDefinition.Width 값을 변환하는 것이다 :
Viewbox.Stretch 및 Viewbox.StretchDirection 속성의 가능한 모든 조합을 시도했지만 모양을 크게 변경했지만 Grid의 열 너비로 문제를 "수정"하지 않았습니다.
레이블의 HorizontalContentAlignment를 변경하면 아무 효과가없는 것 같습니다.
나는 SharedSizeGroup 속성하지만 기쁨 설정 설정을 시도했다 : 내가 대신 뷰 박스에있는 각 레이블을 래핑하는 구조 조정을 시도했다
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*" SharedSizeGroup="A"/>
<ColumnDefinition Width="2*" SharedSizeGroup="A"/>
</Grid.ColumnDefinitions>
을하지만, Viewboxes가 만드는 격자 세포를 기입하지 그냥 이상한 모양 :
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Viewbox>
<Label
BorderBrush="AliceBlue"
BorderThickness="1"
Content="WEST"
FontSize="20"
Padding="0"
Background="Gray"
FontWeight="Bold"
HorizontalContentAlignment="Center"
/>
</Viewbox>
<Viewbox Grid.Column="1">
<Label
BorderBrush="AliceBlue"
BorderThickness="1"
Content="2"
Padding="0"
Background="White"
FontSize="20"
FontWeight="Bold"
HorizontalContentAlignment="Center"
/>
</Viewbox>
</Grid>
크게 SI 여기에 표시된 이미지와 XAML이 된 것을 다시 유의하시기 바랍니다 이 질문의 목적을 달성하기 위해 실제로 각 레이블의 테두리, 배경 및 글꼴의 모양을 향상시키는 광범위한 스타일 집합을 포함합니다. 요점은, 불행히도 수정 그리드 (또는 그와 비슷한)의 배경을 설정하는 것처럼 간단합니다되지 않습니다.
내 ColumnDefinition.Width 값이 Auto로 변경된 이유는 무엇입니까? 그리고 어떻게 해결할 수 있습니까?