我想知道是否有一種方法可以不調整網格的寬度和高度,但是如果我的圖形變爲特定的寬度/高度,相應的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