Silverlight 4 Canvas高度和宽度绑定

问题描述 投票:0回答:1

我正在研究silverlight应用程序,我想通过XAML绑定Canvas Width和Height,但是我如何绑定它。因为画布的宽度和高度我试图绑定它但是不能在我的情况下工作所以如果你们有任何绑定它的其他绑定方式,所以请放一些代码,这样我就可以找出这个问题的解决方案。

我想将其与图像高度和宽度绑定,因此有时候图像大小为1000 x 1200,有时图像大小为1400 x 1700,所以我如何绑定它?

<Viewbox 
            Grid.Row="1" 
            Grid.Column="0"
            Grid.ColumnSpan="2">
                <Canvas
                Height="1000"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                Width="1200">

                    <Image x:Name="imgEdit" 
                                Cursor="Hand"
                                MouseLeftButtonDown="imgEdit_MouseLeftButtonDown"
                                MouseMove="imgEdit_MouseMove"
                                MouseLeftButtonUp="imgEdit_MouseLeftButtonUp"   
                                HorizontalAlignment="Center"
                               VerticalAlignment="Center" 
                               RenderTransformOrigin="0.5, 0.5">

                    <Image.Effect>
                        <l:briconEffect 
                                    Brightness="{Binding ElementName=bVal, Path=Value}"
                                    Contrast="{Binding ElementName=cVal, Path=Value}"
                                    Gamma="{Binding ElementName=gVal,Path=Value}"
                                    RedRatio="{Binding ElementName=rVal,Path=Value}"
                                    BlueRatio="{Binding ElementName=blueVal,Path=Value}"
                                    GreenRatio="{Binding ElementName=greenVal,Path=Value}"/>
                    </Image.Effect>

                    <Image.RenderTransform>

                        <TransformGroup>
                            <RotateTransform x:Name="Rotator">
                                <RotateTransform.Angle>
                                    <Binding ElementName="sldVerHorizontal" Path="Value" Mode="TwoWay"/>
                                </RotateTransform.Angle>
                            </RotateTransform>

                            <ScaleTransform x:Name="Scale">
                                <ScaleTransform.ScaleX>
                                    <Binding ElementName="sldZoomInOut" Path="Value" Mode="TwoWay"/>
                                </ScaleTransform.ScaleX>
                                <ScaleTransform.ScaleY>
                                    <Binding ElementName="sldZoomInOut" Path="Value" Mode="TwoWay"/>
                                </ScaleTransform.ScaleY>
                            </ScaleTransform>
                        </TransformGroup>

                    </Image.RenderTransform>


                </Image>

                <Border
                        x:Name="maskBorder"
                        MinWidth="200"
                        MinHeight="200"
                        BorderBrush="Black"
                        BorderThickness="5"
                        Canvas.Left="250" 
                        Cursor="Hand"
                        Canvas.Top="250">

                    <Rectangle
                        MinWidth="200"
                        MinHeight="200"
                        x:Name="maskRect"
                        Canvas.Left="250" 
                        Cursor="Hand"
                        Canvas.Top="250">
                    </Rectangle>
                </Border>
            </Canvas>
        </Viewbox>
silverlight-4.0
1个回答
0
投票

您可以像这样使用Element Binding绑定Canvas Width和Height属性

宽度= {Binding Element = imgEdit,Path = ActualWidth}高度= {Binding Element = imgEdit,Path = ActualHeight}

您还可以将Canvas包装在固定宽度和高度的ScrollViewer中,以限制用户屏幕大小。

© www.soinside.com 2019 - 2024. All rights reserved.