您如何在画布中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%的宽度和高度。这很重要,因为当浏览器调整大小时,我需要Silverlight调整大小。

有帮助吗?

解决方案 2

看起来我在这里找到了一个解决方案

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

我已经调整了代码,以便每当调整内容大小时自动调整电网大小。这将使我能够使用canvas.leftproperty绝对定位元素,并保持水平/垂直对齐元素的位置。

我考虑仅将网格用作我的主要布局,但是如果需要使对象动画,则不会对物体进行动画。此外,在Mousemove事件中设置左侧和顶部的边缘并不能准确地将我的元素定位到光标位置。

其他提示

画布使用绝对定位来列出其内容。它与Windows表单的工作方式更相似,因为所有元素都必须具有指定的顶部,左,宽度和高度。

您可以通过用没有定义的行/列的网格替换画布来实现类似的功能,并使用边距放置子元素。

还要检查以确保您的表格实际上正在扩展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