[英]Control anchoring in Silverlight
这可能是一个愚蠢的问题,但是我不确定还有什么尝试,因此想寻求帮助。 我的问题是Silverlight中的锚定控件。
我有一个位于控件中的网格(C1FlexGrid)。 该控件用于页面中,我只希望网格大小由浏览器窗口的大小确定。 我想要一个最小的尺寸,但是允许它随着用户扩展浏览器窗口而在垂直和水平方向上扩展。 在WinForms(这是我习惯的)中,这很容易。
但是,在Silverlight中,这让我头疼。 是否有可能使其表现出我想要的方式?
我已将控件的宽度和高度设置为auto,并指定了一些设计宽度/高度。 然后将用户控件放置在页面上,并将控件和页面宽度/高度都设置为自动。
当网格加载其数据(几百行)时,它会根据其中有200行(即变得很长)的事实自动调整网格大小。
编辑
这是来自简单示例的一些XAML:
<navigation:Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml" x:Class="Optimize.Client.Presentation.AboutView"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
Title="About"
x:Name="AboutPage"
Style="{StaticResource PageStyle}">
<Grid x:Name="LayoutRoot" Background="White" MinWidth="300" MinHeight="300">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<c1:C1FlexGrid Margin="10" BorderBrush="Red" BorderThickness="1" Width="Auto" Height="Auto" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<c1:C1FlexGrid.Columns>
<c1:Column Header="User Group" Width="*" />
</c1:C1FlexGrid.Columns>
</c1:C1FlexGrid>
</Grid>
</navigation:Page>
我只想在页面上显示一个网格。 页面的最小尺寸为300x300。 当浏览器窗口扩展时,我希望页面随之扩展,并且网格也随之扩展,以便网格的所有边界从上/下/左/右为10。 我尝试为布局网格的宽度/高度指定*,但仍无法正常工作。
谢谢
Auto
调整大小意味着“请调整我的内容大小”。 那不会限制您到父控件或浏览器的大小。
您希望使用Star
(*)大小调整,这基本上意味着“扣除任何固定或自动的列/行之后,请根据星号的比率在所有星型列/行之间分配剩余空间”。
您还希望容器指定HorizontalAlignment =“ Stretch”和VerticalAlignment =“ Stretch”,以便可以确定分配给星形列/行的空间量(否则它将自身折叠)。
如果您可以发布XAML,我可以更具体地说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.