¥¹¥È¥í¡¼¥¯

¥¹¥È¥í¡¼¥¯¤ÎÉÁ²è¤ò¼ÂÁõ¤¹¤ë¡¥

drawstroke.gif

Àþ¤Î¹½À®Í×ÁÇ

UWP¤Ç¤ÏGUI¤ò¹½À®¤¹¤ëÉôÉʤλҤȤ·¤Æ¡¤Shape¥¯¥é¥¹¤òÄɲ乤뤳¤È¤Ç¿Þ·Á¤òÉÁ²è¤Ç¤­¤ë¡¥

Àþ¤Ï¡¤Shape¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ëLine¥¯¥é¥¹¡¤¤â¤·¤¯¤ÏPath¥¯¥é¥¹¤ò»ÈÍѤ¹¤ë¤¬¡¤¤³¤³¤Ç¤ÏPath¥¯¥é¥¹¤ò»ÈÍѤ¹¤ë¡¥

Path¥¯¥é¥¹¤Ç¤Ï¡¤Àþ¤Î¿§¤äÂÀ¤µ¤òÀßÄꤷ¡¤Data¥á¥ó¥Ð¤ËÀþ¤Î·Á¾õ¤¬Æþ¤Ã¤¿PathGeometry¤òÍ¿¤¨¤ë¡¥

PathGeometry¥¯¥é¥¹¤Ï¡¤±ß¸Ì¡ÊArcs¡Ë¡¤¶ÊÀþ¡ÊCurves¡Ë¡¤Ä¾Àþ¡ÊLines¡Ë¤Ê¤É¡¤¼ïÎà¤Î°Û¤Ê¤ëĺÅÀ¥Ù¡¼¥¹¤ÇÍ¿¤¨¤é¤ì¤ëÊ£¿ô¤Î·Á¾õ¥Ç¡¼¥¿(PathFigure)¤ò¤Þ¤È¤á¤ë¤â¤Î¤Ç¤¢¤ë¡¥¼ÂºÝ¤Ë¤ÏFigures¥á¥ó¥Ð¤ËPathFigure¥¤¥ó¥¹¥¿¥ó¥¹¤òÍ¿¤¨¤ë¡¥

PathFigure¤ÏÊ£¿ô¤ÎSegment¤Ç¹½À®¤µ¤ì¤¿¿Þ·Á¤òɽ¤¹¥¯¥é¥¹¤Ç¡¤³«»ÏÅÀ¤ä¿Þ·Á¤ÎÊĤ¸¤Ê¤É¤ÎÀßÄê¤ò¹Ô¤¦¡¥¼ÂºÝ¤Ë¤ÏSegments¥á¥ó¥Ð¤ËSegment¤ò·Ñ¾µ¤·¤¿BezierSegment, LineSegment, PolyBezierSegment, PolyLineSegment, PolyQuadraticBezierSegment, QuadraticBezierSegment¤Ê¤É¤¤¤º¤ì¤«¤ÎSegment¥¤¥ó¥¹¥¿¥ó¥¹¤òÄɲ乤롥

º£²ó¡¤¥¹¥È¥í¡¼¥¯¤ÏÊ£¿ôÅÀ¤òñ½ã¤Ë·ë¤ó¤ÀÀþ¤È¤Ê¤ë¤¿¤á¡¤PolyLineSegment¤ò»ÈÍѤ¹¤ë¡¥

PolyLineSegment¤ÎPoints¥á¥ó¥Ð¤ËºÂɸ¤òµ­¤·¤¿Ê£¿ô¸Ä¤ÎPoint¤òPoints¥á¥ó¥Ð¤ËÍ¿¤¨¤ë¤³¤È¤Ç¡¤¤½¤ì¤é¤òľÀþ¤Ç·ë¤ó¤ÀÀþ¤òÉÁ²è¤¹¤ë¡¥Points¥á¥ó¥Ð¤ÎÁàºî¤ÇÅÀ¤ÎÁý¸º¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¥ê¥¢¥ë¥¿¥¤¥à¤Ë²èÌ̤ËÈ¿±Ç¤µ¤ì¤ë¡¥

path.png
          //¥×¥í¥°¥é¥à¾åÉô¤Î
          //using System.IO; ¤ò¥³¥á¥ó¥È¥¢¥¦¥È
          //using Windows.UI;¡¡¤òÄɲÃ
          //using Windows.UI.Xaml.Shapes;¡¡¤òÄɲÃ
          PathFigure myPathFigure = new PathFigure();
          myPathFigure.StartPoint = new Point(10, 50);

          LineSegment myLineSegment = new LineSegment();
          myLineSegment.Point = new Point(200, 70);

          PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
          myPathSegmentCollection.Add(myLineSegment);

          myPathFigure.Segments = myPathSegmentCollection;

          PathFigureCollection myPathFigureCollection = new PathFigureCollection();
          myPathFigureCollection.Add(myPathFigure);

          PathGeometry myPathGeometry = new PathGeometry();
          myPathGeometry.Figures = myPathFigureCollection;

          Path myPath = new Path();
          myPath.Stroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
          myPath.StrokeThickness = 1;
          myPath.Data = myPathGeometry;

          MainCanvas.Children.Add(myPath);

¼ê½ç

Î㳰Ū¤Ê½èÍý¤ò¹Íθ¤·¤Ê¤±¤ì¤Ð¡¤

ÉÁ²èÃæ¤ÎPath¥¯¥é¥¹¤òÊÝ»ý¤¹¤ë¥á¥ó¥ÐÊÑ¿ô¡Ê²¾¤ËdrawingStroke¤È̾ÉÕ¤±¤ë¡Ë¤òÄɲä·¡¤

  1. PointerPressed¥¤¥Ù¥ó¥È¡§drawingStroke¡ÊPath¥¯¥é¥¹¡Ë¤ËɬÍפʥ¯¥é¥¹¥¤¥ó¥¹¥¿¥ó¥¹°ì¼°¤òÀ¸À®
  2. PointerMoved¥¤¥Ù¥ó¥È¡§drawingStroke¤¬null¤Ç¤Ê¤±¤ì¤Ð¡¤¥¹¥È¥í¡¼¥¯ÉÁ²èÃæ¤Ç¤¢¤ë¤«¤é¸½ºß¤Î¥Þ¥¦¥¹ºÂɸ¤òPolyLineSegment¤ÎPoints¥á¥ó¥Ð¤ËAdd¤¹¤ë
  3. PointerReleased¥¤¥Ù¥ó¥È¡§drawingStroke¤¬null¤Ç¤Ê¤±¤ì¤Ð¡¤ÉÁ¤­½ª¤ï¤Ã¤¿¤³¤È¤ò¼¨¤¹¤¿¤ánull¤Ë¤·¤Æ¤ª¤¯

¼ÂºÝ¤Ë¤Ï¥¹¥È¥í¡¼¥¯ÉÁ²èÅÓÃæ¡Ê¥Þ¥¦¥¹¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤Þ¤Þ¡Ë¤Ç¥¦¥¤¥ó¥É¥¦¤Î¥Õ¥©¡¼¥«¥¹¤¬³°¤ì¤¿¡¤¥Þ¥¦¥¹¥«¡¼¥½¥ë¤¬¥¦¥¤¥ó¥É¥¦³°¤Ë½Ð¤¿¾ì¹ç¤Ê¤É¡¤PointerReleased¥¤¥Ù¥ó¥È¤¬µ¯¤­¤º¤Ë¥¹¥È¥í¡¼¥¯ÉÁ²è¤ò½ªÎ»¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¾ìÌ̤⤢¤ë¡¥

¥á¥Ã¥»¡¼¥¸É½¼¨

¥Æ¥ó¥×¥ì¡¼¥È¥×¥í¥°¥é¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥á¥Ã¥»¡¼¥¸É½¼¨ÍѤÎTextBlock¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡¥

°Ê²¼¤¬°ú¿ô¤Ë»ØÄꤵ¤ì¤¿Ê¸»úÎó¤òɽ¼¨¤¹¤ë¥á¥½¥Ã¥ÉÎã¤È¤Ê¤ë¡¥StatusBlockScroll.ChangeView¥á¥½¥Ã¥É¤Ï¥á¥Ã¥»¡¼¥¸¤òÄɲ䵤줿ʸ»úÎó°ÌÃ֤˹ç¤ï¤»¤ë¤¿¤á¡¤¥¹¥¯¥í¡¼¥ë¤òºÇ²¼Ãʤ˰ÜÆ°¤µ¤»¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡¥

1.MainPageXaml¤ÎScrollViewer¤Ë̾Á°¤òÉÕ¤±¤ë¡¥

<ScrollViewer VerticalScrollMode="Auto"  VerticalScrollBarVisibility="Auto" MaxHeight="200" HorizontalAlignment="Stretch" Height="117" Margin="0,0,0,0" VerticalAlignment="Stretch">

¢­

<ScrollViewer x:Name="StatusBlockScroll" VerticalScrollMode="Auto"  VerticalScrollBarVisibility="Auto" MaxHeight="200" HorizontalAlignment="Stretch" Height="117" Margin="0,0,0,0" VerticalAlignment="Stretch">

2.°Ê²¼¤Î¥á¥½¥Ã¥É¤òMainPage.xaml.cs¤ËÄɲÃ

       private void AddMessage(string str)
       {
           StatusBlock.Text += str + System.Environment.NewLine;
           StatusBlockScroll.ChangeView(0, StatusBlockScroll.ScrollableHeight, StatusBlockScroll.ZoomFactor, false);
       }

Äó½Ð

°Ê²¼¤ËMainPage.xaml.cs¤ò5·î24Æü18»þ¤Þ¤Ç¤ËÄó½Ð¤»¤è¡¥ÊÌÅÓ¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤¿¤â¤Î¤Ï¤½¤Á¤é¤âÄó½Ð¤Î¤³¤È¡£

\\nas002.term.usmc.dendai.ac.jp
¨¦\¼ø¶ÈÍѥ¥¯¥¹¥Ú¡¼¥¹\Àé½»¥­¥ã¥ó¥Ñ¥¹\Á°´ü\̤Íè²Ê³ØÉô\­¢¾ðÊó¥á¥Ç¥£¥¢³Ø²Ê
 ¨¦\FI3¾ðÊó¥á¥Ç¥£¥¢´ðÁÃ¥¼¥ß(¿¹Ã«Í§¾¼)·î2
   ¨¦Âè2²ó\Äó½Ð

¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS