셀 중 하나에서 사용자 정의 컨트롤을 사용하여 격자 열의 너비를 올바르게 관리하는 방법을 알 수 없습니다. 나는 창문이 XAML 있습니다격자의 컨트롤이 열 너비를 변경하지 못하도록하십시오.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Content="Button" Width="100" HorizontalAlignment="Left"/>
<TextBox Grid.Row="1" />
<local:UserControl1 Grid.Row="2"
HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
을 사용자 컨트롤은 필요에 따라 스트레칭 설정 도면 :
<UserControl x:Class="WpfApplication1.UserControl1"
Height="auto" Width="auto">
<Grid Background="Aqua">
<Path Fill="Coral" Stroke="Black" StrokeThickness="1"
Stretch="Uniform"
HorizontalAlignment="Left" VerticalAlignment="Top">
<Path.Data>
<RectangleGeometry Rect="40,20, 140,30" RadiusX="10" RadiusY="10" />
</Path.Data>
</Path>
</Grid>
</UserControl>
내가 파란색에서 사용자 컨트롤 배경을 설정 한 도움이됩니다.
나는 사용자 정의 컨트롤의 "자연적인"크기를 무시하고 열의 너비를 갖고 싶습니다. 사용자 정의 컨트롤에서 열의 레이아웃 중에 너비를 결정하지 않고 열의 너비를 조절하려면 너비를 조정할 수 있습니다.
예에서 Grid는 처음에는 열 너비를 단추 값으로 설정하고 사용자 정의 컨트롤은 열 너비를 사용하여 자체 크기를 조정합니다. 그런 다음 텍스트 상자에 긴 텍스트가 입력되면 텍스트 상자가 단추보다 넓어지기 시작하고 열의 크기가 다시 조정되기 시작하면 사용자 정의 컨트롤이 열과 크기가 동일하게 유지되도록 조정됩니다.
스트레치 값 조합을 시도했으며 사용자 정의 컨트롤에서 MeasureOverride()를 사용했습니다. 후자는받은 AvalaibleSize가 열 너비가 아닌 Infinity이기 때문에 작동하지 않습니다.
그 덕분에 많은 도움을 주었고 그 질문에 답을 표시했습니다. 실제 컨텍스트에서는 텍스트 상자를 사용할 수 없으며 (또는 숨길 필요가 있지만 그렇게하고 싶지 않습니다.) 열에 여러 컨트롤이 포함되어 있으므로 특히 바인딩 할 수는 없습니다. gid ColumnDefinition에 바인딩하는 다른 스레드를 읽었지만 성공하지 못했기 때문에이 가능성을 여전히 찾고 있습니다. – 742