none
inkcanvas 书写区域如何无限扩展 RRS feed

  • 问题

  • 现在用WPF来做一个类似windows自带的画图的软件

    使用inkcanvas完成桌面涂鸦的功能,现在遇到的一个问题是:

    1、当我屏幕显示区域的inkcanvas都画满之后,想通过鼠标点击inkcanvas区域,拖动鼠标.. 将已经画有线条的区域往外移动..   新的可写区域就出来 了..  (缩小画板的时候可以查看到全部的画线内容) 这个功能很多都叫它为 漫游    

     

    期待大家的解决方案,谢谢!

    2014年6月17日 6:47

答案

  • 你好,

    我很粗略的写了一个扩展inkCanvas区域的例子:

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="1*"/>
            </Grid.RowDefinitions>
            <TextBlock Text="inkCanvas Paint:"/>
            <ScrollViewer Grid.Row="1" x:Name="scrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                <Border BorderBrush="Yellow" BorderThickness="2">
                    <InkCanvas x:Name="inkCanvas" Width="505" />
                </Border>
            </ScrollViewer>
            <Button Grid.Row="2" Content="Extend" Click="Button_Click" Height="30" Width="100"/>
        </Grid>


            public double inkCanvasWidth { get; set; }
            public double inkCanvasHeight { get; set; }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                this.inkCanvasWidth = this.inkCanvas.ActualWidth;
                this.inkCanvas.Width += this.inkCanvasWidth * 2;
                this.scrollViewer.ScrollToRightEnd();
            }

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 KeJun Lai 2014年6月23日 7:15
    2014年6月18日 5:52
    版主

全部回复

  • 你好,

    我很粗略的写了一个扩展inkCanvas区域的例子:

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="1*"/>
            </Grid.RowDefinitions>
            <TextBlock Text="inkCanvas Paint:"/>
            <ScrollViewer Grid.Row="1" x:Name="scrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                <Border BorderBrush="Yellow" BorderThickness="2">
                    <InkCanvas x:Name="inkCanvas" Width="505" />
                </Border>
            </ScrollViewer>
            <Button Grid.Row="2" Content="Extend" Click="Button_Click" Height="30" Width="100"/>
        </Grid>


            public double inkCanvasWidth { get; set; }
            public double inkCanvasHeight { get; set; }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                this.inkCanvasWidth = this.inkCanvas.ActualWidth;
                this.inkCanvas.Width += this.inkCanvasWidth * 2;
                this.scrollViewer.ScrollToRightEnd();
            }

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 KeJun Lai 2014年6月23日 7:15
    2014年6月18日 5:52
    版主
  • 谢谢您的回复,根据您的思路  提醒了我 ,找到了解决方案....  再次谢谢
    2014年6月23日 7:16
  • 楼主你好,你这个问题是按照1楼说的完成了的吗?如果是:加滚动条的画界面是不是有点不美观,能有其他方式吗?
    2017年12月4日 5:37