2010-12-30 4 views
2

Ich habe die folgende Pivot Kontrolle in meiner WP7 App.Größe des verfügbaren Benutzeroberflächenbereichs in Pixeln erhalten

<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> 

Ich möchte das imgItem1 Bild den verfügbaren Speicherplatz auf der Seite zu füllen. In meinem Code hinter habe ich die OnNavigatedTo Methode überschrieben, wo ich ein Bild von einem Web-Service anfordern. Ich kann dem Webservice Größenparameter im URI geben. Ich möchte die verfügbare Größe für das Bild in Pixel finden und diese Werte an den Web-Service senden.

Ich dachte, (int)imgItem1.ActualHeight und (int)imgItem1.ActualWidth wäre gut zu betrachten, aber sie sind 0, bis ein Bild zugewiesen wurde, und dann sind sie die Höhe und Breite des Bildes.

Wie finde ich die maximale/verfügbare Größe des zu ladenden Bildes?

+0

Haben Sie versucht, Stretch = "None" aus dem Bild zu entfernen? Nur eine Vermutung ... – Anvaka

+0

@Anvaka, das ändert nichts –

Antwort

1

Versuchen Sie folgendes: -

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

Verwenden Sie die Actual und Actual des Rechtecks ​​die Größenwerte zu bestimmen, in der URL enthalten.

+0

Nice Hack, müssen Sie es nur in der Seite 'Load' Ereignis anstelle der' OnNavigatedTo' Methode. –

0

Sie können auch vom Loaded-Ereignis auf die Seiten ActualHeight und ActualWidth verweisen.

z.B.

Beachten Sie, dass beide Ansätze 768 anstelle von 800 erzeugen, wenn der SystemTray aktiviert ist.

 shell:SystemTray.IsVisible="True" 
+0

Dies berücksichtigt nicht das Pivot-Steuerelement, das das Bild umgibt. –

+0

Ich bin mir nicht sicher, was Sie sonst noch dort haben, aber ich habe es in einer Standard-Pivot-App versucht und die gleichen Ergebnisse wie oben erzielt. Wahrscheinlich ist es keine große Sache für Sie, wenn Sie eine funktionierende Lösung haben ... nur eine Kuriosität jetzt. –

+0

'this.ActualHeight = 696.0' und' rectangleMeasure.ActualHeight = 551.0', Das 'Pivot'-Steuerelement hat einige Header-Text und Abstände um das' PivotItem'. –

Verwandte Themen