如何设置比例Canvas.Left?

时间:2015-07-23 10:13:03

标签: wpf xaml canvas

是否可以按比例设置控件左侧与其父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中?

0 个答案:

没有答案