我想知道是否有一种方法可以不调整网格的宽度和高度,但是如果我的图形变为特定的宽度/高度,相应的scrollviewer出现,是否有可能在XAML中做,还是我需要在代码后面做这个?所以,我希望我的控制有宽度,如果窗口得到下面这些话,我希望能够使滚动的观众,我有当窗口大小减小时,滚动条或滚动查看器
XAML
<ScrollViewer x:Name="MyScrollViewer" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Disabled">
<Grid Background="White" x:Name="OuterGrid">
<Grid.RowDefinitions>
<RowDefinition Height="70"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid Background="White" Grid.Row="1" x:Name="UIWindow" Grid.ColumnSpan="2">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="1.2*"/>
<ColumnDefinition Width="1.2*"/>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Left" Margin="25,3,0,2" Height="17" VerticalAlignment="Top" Width="70" Text="Facies" Grid.Column="0" Grid.Row="0" FontFamily="{StaticResource FontFamily}"/>
<Path Data="M2.4,62 L103.4,62" HorizontalAlignment="Left" Height="1" Margin="5,20,0,0" Stretch="Fill" Stroke="#A8A8A8" VerticalAlignment="Top" Width="200" Grid.Column="0" Grid.Row="0"/>
<Controls:FaciesControl x:Name="FaciesFilter" HorizontalAlignment="Left" Margin="10,25,0,0" VerticalAlignment="Top" Height="300" Width="195" Grid.Row="0" Grid.Column="0" Grid.RowSpan="3"/>
<TextBlock Grid.Column="0" Grid.Row="2" Text="Zone Legend:" Width="150" Height="15" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10" FontFamily="{StaticResource FontFamily}"/>
<Path Data="M2.4,62 L103.4,62" HorizontalAlignment="Left" Height="1" Margin="5,27,0,0" Stretch="Fill" Stroke="#A8A8A8" VerticalAlignment="Top" Width="200" Grid.Column="0" Grid.Row="2"/>
<Controls:LegendControl x:Name="LegendFilter" HorizontalAlignment="Left" Height="450" Margin="5,50,0,0" Grid.Row="2" Grid.Column="0" VerticalAlignment="Top" Width="224" Grid.RowSpan="4"/>
<TextBlock Text="Sequence Stratigraphy" FontFamily="{StaticResource FontFamily}" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5,5,0,0" Grid.Column="1" Grid.Row="0"/>
<Path Data="M2.4,62 L103.4,62" HorizontalAlignment="Left" Height="1" Margin="5,20,0,0" Stretch="Fill" Stroke="#A8A8A8" VerticalAlignment="Top" Width="355" Grid.Column="1" Grid.Row="0"/>
<Stratigraphy:StratiGraphControl x:Name="stratiGraphControl" Grid.Row="0" Grid.Column="1" Grid.RowSpan="4" Margin="0,40,40,10"/>
您有'FrameworkElement'的属性,如'MaxWidth''MaxHeight' [FrameworkElement.MaxWidth](https://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.maxwidth%28v=vs。 110%29.aspx) – kirotab
是的,但如果我在更大的屏幕上有应用程序,那么如果它在更大的屏幕上显示,当屏幕最大化时,它会看起来很小,当它最大化时,控件是完美的,只是当我缩小尺寸时的窗口 –
所以我看到你的控件没有响应,而且它们的值已经设置好了,你只是想在窗口尺寸变小时显示/隐藏ScrollViewer?如果这是正确的两个选项想到1.绑定到您的主容器的实际宽度,并使用转换器将滚动查看器的可见性设置为适当的值。 2.使用窗口的'SizeChanged'事件并在你的代码中设置适当的可见性到'ScrollViewer'。第二个选项更容易,我不确定第一个选项是否可以工作(我认为我有一些与'ActualWidth'有关的问题,它没有触发它的更改处理程序) – kirotab