Frage

Wie macht man eine Gitterbreite zu 100% in einer Leinwand? Hier ist ein einfaches XAML, aber es funktioniert nicht wie erwartet.

<Canvas Background="MediumSlateBlue" Width="Auto" Height="Auto" >
    <Grid x:Name="LayoutRoot" MouseMove="MainPage_MouseMove" Background="Beige" >
        <TextBlock x:Name="lblDisplay" Height="24" HorizontalAlignment="Right" VerticalAlignment="Top" Width="128" Text="asdf" ></TextBlock>
    </Grid>
</Canvas>

Ich verstehe nicht, warum mein Raster nicht so viel Platz einnimmt, wie es es bekommen kann! Ich habe sogar versucht, eine einzelne Zeile und Spaltendefinition mit einer Breite von 100*hinzuzufügen, aber mein Raster nimmt immer noch so viel Platz ein, wie das Etikett, das sie enthält. Das Ziel ist es, eine Leinwand mit einem Netzkind zu haben und 100% Breite und Höhe aufzunehmen. Dies ist wichtig, da ich das Silverlight zur Größe benötige, wenn der Browser die Anschreitung verändert.

War es hilfreich?

Lösung 2

Sieht so aus, als hätte ich hier eine Lösung gefunden

http://forums.silverlight.net/forums/t/13415.aspx

Ich habe meinen Code so angepasst, dass mein Netz automatisch geändert wird, wenn der Inhalt geändert wird. Auf diese Weise kann ich Elemente mit Leinwand absolut positionieren.

Ich überlegte, nur ein Netz als mein primäres Layout zu verwenden. Sollte die Notwendigkeit, ein Objekt zu animieren, nicht animiert werden kann. Darüber hinaus hat das Festlegen des Randes links und oben während des Mousemove -Ereignisses mein Element nicht genau auf die Cursorposition positioniert.

Andere Tipps

Leinwand legt ihren Inhalt mithilfe der absoluten Positionierung dar. Es ist viel ähnlicher der Art und Weise, wie Windows -Formulare darin funktionierten, als alle Elemente eine Spitze, links, Breite und Höhe angegeben haben müssen.

Sie können eine ähnliche Funktionalität erreichen, indem Sie Leinwand durch ein Gitter ersetzen, das keine Zeilen/Spalten definiert hat und Ränder verwenden, um untergeordnete Elemente zu platzieren.

Überprüfen Sie auch, ob Ihr Formular die Silverlight -Anwendung tatsächlich dehnt.

<form id="form1" runat="server" style="height:100%">
<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
      <param name="source" value="clientbin/MyApp.xap"/>
      <param name="onError" value="onSilverlightError" />
      <param name="background" value="white" />
      <param name="minRuntimeVersion" value="3.0.40818.0" />
      <param name="autoUpgrade" value="true" />
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
          <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
      </a>
    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top