質問

キャンバス内でグリッド幅100%をどのように作成しますか?ここにいくつかの単純なXAMLがありますが、期待どおりに機能しません。

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

グリッドが手に入れることができるほど多くのスペースを占有しない理由がわかりません! 100*の幅で単一の行と列の定義を追加しようと試みましたが、それでも私のグリッドは、それに含まれるラベルと同じくらいのスペースを占有するだけです。目標は、グリッドの子供を持つキャンバスを持つことであり、幅100%と高さを占めることです。これは、ブラウザのサイズが変更されたときにサイズを変更するためにシルバーライトが必要なため重要です。

役に立ちましたか?

解決 2

ここで解決策を見つけたようです

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

コンテンツがサイズ変更されるたびに、グリッドを自動的にサイズ変更するようにコードを調整しました。これにより、要素をCanvas.LeftPropertyを絶対に使用し、水平/垂直に整列した要素の位置を維持することができます。

グリッドのみをプライマリレイアウトとして使用することを検討しましたが、オブジェクトをアニメーション化するために必要な場合、マージンをアニメーション化することはできません。さらに、Mousemoveイベント中に左と上部のマージンを設定しても、私の要素をカーソル位置に正確に配置しませんでした。

他のヒント

Canvasは、絶対的な位置付けを使用してコンテンツをレイアウトします。すべての要素が指定されている上部、左、幅、高さを指定する必要があるという点で、Windowsフォームが機能する方法にはるかに似ています。

Canvasを定義された列のないグリッドに置き換え、子要素を配置するためにマージンを使用することにより、同様の機能を達成できます。

また、フォームが実際にSilverlightアプリケーションを伸ばしていることを確認してください。

<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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top