랩 패널 (또는 다른 컨트롤)이 스크롤 뷰어 너비 계산에 참여하지 못하게 할 방법이 있습니까? 예를 들어, 아래에, 다른 컨트롤에 의해 만들어진 너비 내에서 랩 패널을 유지하고 너비 계산에 직접 영향을 미치지 싶습니다. (즉) Auto가 꺼져있을 때와 유사한 동작을 원하지만 다른 콘텐츠의 가로 스크롤이 더 넓어 지도록 허용합니다.WPF가 scrollviewer 너비에 영향을주지 않도록 하시겠습니까?
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<WrapPanel Grid.Column="1" Name="ctlWrap" />
<TextBox Grid.Row="1" Grid.Column="1" Width="100" HorizontalAlignment="Left" Name="ctlText" />
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
<Button Click="Button_Click">Add Wrap</Button>
<Button Click="Button_Click_1">Remove Wrap</Button>
<Button Click="Button_Click_2">Add Text</Button>
<Button Click="Button_Click_3">Remove Text</Button>
</StackPanel>
</Grid>
</ScrollViewer>
</Grid>
</Window>
여기에 내가 버튼에 사용되는 코드는 다음과 같습니다
Class MainWindow
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
ctlWrap.Children.Add(New Button With {.Content = "Button " & ctlWrap.Children.Count + 1})
End Sub
Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
If ctlWrap.Children.Count Then
ctlWrap.Children.RemoveAt(ctlWrap.Children.Count - 1)
End If
End Sub
Private Sub Button_Click_2(sender As Object, e As RoutedEventArgs)
ctlText.Width += 30
End Sub
Private Sub Button_Click_3(sender As Object, e As RoutedEventArgs)
If ctlText.Width > 60 Then ctlText.Width -= 30
End Sub
End Class
당신의 질문은 분명하지 않습니다 ... 당신이 자신의 커스텀'패널 '을 개발할 필요가있는 것 같지만, 당신이 원하는 것을 정확히 모르겠습니다. – Sheridan
스크롤 패널 너비에 영향을주지 않고 스크롤 패널의 크기에 맞게 랩 패널을 사용하고 싶습니다. 두 가지 조건이 있습니다. 1) 다른 모든 내용이보기 공간에 맞습니다. 랩 패널은 뷰 공간의 너비 여야합니다. 2) 일부 다른 내용은보기 공간보다 넓으며 스크롤러는 그 너비까지 스크롤 할 수 있습니다. 랩 패널은 새로운 너비 여야합니다. 즉, 스크롤러 폭에 맞게 크기가 조정되지만 스크롤러 폭에는 영향을 미치지 않습니다. 내 시나리오에서 랩 패널은 스크롤러에있는 격자의 두 번째 열에 있습니다. – user2637281