Я хочу знать, есть ли способ не изменять ширину и высоту сетки, которые у меня есть, но когда я уменьшаю размер окна, если мой график становится определенной шириной/высотой, тогда появится соответствующий scrollviewer, возможно ли это сделать в XAML или мне нужно сделать это в коде? Поэтому я хочу, чтобы мои управления, чтобы иметь ширину, и если окно становится ниже их, то я хочу, чтобы иметь возможность позволить зрителям прокрутки, что у меня естьScrollbar или ScrollViewer при уменьшении размеров окон
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. Привяжите фактическую ширину основного контейнера и используйте конвертер, чтобы установить видимость вашего scrollviewer в соответствующее значение. 2. Используйте событие «SizeChanged» в окне и в вашем коде, чтобы установить соответствующую видимость в 'ScrollViewer'. Второй вариант проще, и я не уверен, что первый из них будет работать (я думаю, что у меня были некоторые проблемы с 'ActualWidth', не стреляющим в измененный обработчик) – kirotab