下面我有一些相當原始的代碼(只測試,試圖證明這一點)。我有一個網格行和網格列,它們的寬度和高度都分別定義爲「*」,以便它們用盡其他行/列未使用的所有可用空間。相當標準,或者我想。如果XAML Grid Row/Column是「*」 - 如何以編程方式獲取可用區域?
<Grid x:Name="PageContent" Background="{Binding PageColor}">
<Grid.RowDefinitions>
<RowDefinition Height="81" />
<RowDefinition Height="*" />
<RowDefinition Height="92" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button x:Name="backButton" Grid.Row="0" Grid.Column="0" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource TopBackButtonStyle}" />
<Button x:Name="searchButton" Grid.Row="0" Grid.Column="2" Click="GoSearch" Style="{StaticResource TopSearchButtonStyle}" HorizontalAlignment="Right"/>
<Button x:Name="settingsButton" Grid.Row="0" Grid.Column="3" Click="GoSettings" Style="{StaticResource TopSettingsButtonStyle}" HorizontalAlignment="Right"/>
<ScrollViewer Grid.Row="1" Grid.ColumnSpan="4" Name="MainScrollViewer" ZoomMode="Disabled" IsTabStop="False" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Padding="0,0,0,20" >
<Image x:Name="PDFRenderedImage" AutomationProperties.Name="placeholder image" Source="Assets/placeholder-sdk.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="10,10,10,10"/>
</ScrollViewer>
好吧,我正在嘗試使用一些微軟爲示例定義的更便宜的PDF顯示例程。其中之一是與PdfPageRenderOptions一起使用RenderToStreamAsync。
我想要做的一件事就是嘗試縮放PDF合成圖像,使頁面無論如何都適合屏幕顯示。但是,至少要使用PdfPageRenderOptions,這意味着我需要提前知道寬度/高度。因此,如何在程序中使用該元素之前的原始/列定義爲「*」的UIElement的寬度和高度(即,如何獲得可用區域大小大小尚未使用)。
有沒有人看到有更好的方法來做到這一點?
在這種情況下,ScrollViewer中顯示的NaN和0的ActualHeight的高度因此,無論這些看起來像一個蕭條。 – RallyRabbit