是否可以按比例设置控件左侧与其父Canvas左侧之间的距离,而不是固定值?
我使用Canvas(实际上是DragCanvas,因为我允许用户在画布中拖动控件)。我在xaml中绑定值:
<ItemsControl ItemsSource="{Binding Tables}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Style="{DynamicResource TableButton}" Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Top" Value="{Binding Path=YTransl}" />
<Setter Property="Canvas.Left" Value="{Binding Path=XTransl}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
<j:DragCanvas Margin="10"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
对于较大的屏幕尺寸,画布内部的控件存在于屏幕尺寸较小的视图之外的问题。
我需要设置值&#34; YTransl&#34;和&#34; XTransl&#34;占整个画布的百分比,与屏幕尺寸成比例。
类似于Grid容器中的<RowDefinition Height="1*" />
。
或者乘以屏幕宽度和高度......我不知道这是不是好主意......
有没有办法在xaml中执行此操作?或者我应该在cs中计算这个并将准备好的值绑定在xaml中?