Получить размер доступного пространства пользовательского интерфейса в пикселях - PullRequest
2 голосов
/ 30 декабря 2010

В моем приложении WP7 есть следующий элемент управления Pivot.

<Grid x:Name="LayoutRoot" Background="Transparent">
    <!--Pivot Control-->
    <controls:Pivot Title="foo" >
        <controls:PivotItem Header="Item1">
            <Grid>
                <Image x:Name="imgItem1" Source="{Binding Path=Item1ImageUri}" Stretch="None" />
            </Grid>
        </controls:PivotItem>

        <!-- ... more PivotItems -->

    </controls:Pivot>
</Grid>

Я хочу, чтобы изображение imgItem1 занимало свободное место на странице. В своем коде я переопределил метод OnNavigatedTo, когда я запрашиваю изображение из веб-службы. Я могу дать параметры размера в URI для веб-службы. Я хочу найти доступный размер изображения в пикселях и отправить эти значения в веб-службу.

Я думал, что (int)imgItem1.ActualHeight и (int)imgItem1.ActualWidth было бы неплохо посмотреть, но они равны 0, пока изображение не назначено, а затем они являются высотой и шириной изображения.

Как найти максимальный / доступный размер изображения для загрузки?

Ответы [ 2 ]

1 голос
/ 30 декабря 2010

Попробуйте: -

<Grid>
    <Rectangle x:Name="rectangleMeasure" Fill="Transparent" />
    <Image x:Name="imgItem1" Source="{Binding Path=Item1ImageUri}" Stretch="None" />  
</Grid>

Используйте ActualHeight и ActualWidth прямоугольника, чтобы определить значения размера для включения в ваш URL.

0 голосов
/ 30 декабря 2010

Вы также можете ссылаться на страницы ActualHeight и ActualWidth из события Loaded.

например,

       private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) {
            System.Diagnostics.Debug.WriteLine(this.ActualHeight);
       }

Обратите внимание, что любой подход даст 768 вместо 800, если включен SystemTray.1006 *

       shell:SystemTray.IsVisible="True"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...