[실버라이트] 비디오브러시 – 정형돈찍기, gee확대경

[결과물]
Get Microsoft Silverlight
캔버스에 정형돈을 찍어보세요~♡
MUTE는 쉬프트를 누르면서 마우스 왼쪽을 누르시면 됩니다. (자꾸 들으면 -ㅅ-…)
복구도 마찬가지!

Get Microsoft Silverlight

소녀시대를 확대해 보세요!
확대는 마우스 왼쪽 축소는 쉬프트를 누르면서 마우스 왼쪽을 누르시면 됩니다.
MUTE는 버튼을 클릭해주세요.

[#M_[소스보기]|[소스닫기]|- 정형돈찍기

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SilverBrush
{
    public partial class Page : UserControl
    {
        public Boolean mute_value;
        public Page()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(Page_Loaded);
        }

        void Page_Loaded(object sender, RoutedEventArgs e)
        {
            this.KeyDown += new KeyEventHandler(Page_KeyDown);
            this.KeyUp += new KeyEventHandler(Page_KeyUp);
            this.MouseLeftButtonDown += new MouseButtonEventHandler(Page_MouseLeftButtonDown);
        }

        void Page_KeyUp(object sender, KeyEventArgs e)
        {
            mute_value = false;
        }

        void Page_KeyDown(object sender, KeyEventArgs e)
        {
            if ((int)e.Key == 4)
            {
                mute_value = true;
            }
        }

        void Page_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (mute_value == true)
            {
                testvod.IsMuted = true;
            }
            else
            {
                Jinsang jinsang = new Jinsang();

                jinsang.SetValue(Canvas.LeftProperty, e.GetPosition(this).X);
                jinsang.SetValue(Canvas.TopProperty, e.GetPosition(this).Y);

                VideoBrush temp = new VideoBrush();
                temp.SetSource(testvod);
                temp.Stretch = Stretch.Fill;

                jinsang.jinsanglove.Fill = temp;

                LayoutRoot.Children.Add(jinsang);

                testvod.IsMuted = false;
            }           
        }

        private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
        {
            testvod.Stop();
            testvod.Play();
        }
    }
}

– gee확대경

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SilverVideoBrushMask
{
    public partial class Page : UserControl
    {
        public double scale_value = 1.1;
        public Page()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(Page_Loaded);
        }

      

        void Page_Loaded(object sender, RoutedEventArgs e)
        {
            geegee_wmv.IsMuted = true;
            mute_text.Text = “UNMUTE”;

            this.KeyDown += new KeyEventHandler(Page_KeyDown);
            this.KeyUp += new KeyEventHandler(Page_KeyUp);
            this.MouseMove += new MouseEventHandler(Page_MouseMove);
            this.MouseLeftButtonDown += new MouseButtonEventHandler(Page_MouseLeftButtonDown);
            mute_text.MouseLeftButtonDown += new MouseButtonEventHandler(mute_text_MouseLeftButtonDown);
        }

        void Page_KeyUp(object sender, KeyEventArgs e)
        {
            scale_value = 1.1;
        }

        void Page_KeyDown(object sender, KeyEventArgs e)
        {
            if ((int)e.Key == 4)
            {
                scale_value = 0.9;
            }
        }

        void mute_text_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (geegee_wmv.IsMuted == true)
            {
                geegee_wmv.IsMuted = false;
                mute_text.Text = “MUTE”;
            }
            else if (geegee_wmv.IsMuted == false)
            {
                mute_text.Text = “UNMUTE”;
                geegee_wmv.IsMuted = true;
            }
        }

        void Page_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            scale.ScaleX *= scale_value;
            scale.ScaleY *= scale_value;
        }

        void Page_MouseMove(object sender, MouseEventArgs e)
        {
            myRound.SetValue(Canvas.LeftProperty, e.GetPosition(this).X);
            myRound.SetValue(Canvas.TopProperty, e.GetPosition(this).Y);
            geegee_wmv.SetValue(Canvas.LeftProperty, -e.GetPosition(this).X);
            geegee_wmv.SetValue(Canvas.TopProperty, -e.GetPosition(this).Y);
        }

        private void geegee_wmv_MediaEnded(object sender, RoutedEventArgs e)
        {
            geegee_wmv.Stop();
            geegee_wmv.Play();
        }
    }
}

_M#]

 은광초등학교(실버라잇스터디모임)에서 비디오브러시 배운 것을 응용한 정형돈찍기와 gee확대경입니다.

 다분히 변태-_-.. 스러운 저의 취향이 들어있는 결과물인데요. 하하하… 좀 올리기 부끄럽네요 *-_-* 실버라이트의 비디오 브러시가 여러군데에 적용이 아~주 쉽게 된다는 것을 알 수 있어서 좋았습니다. (사실 소녀시대를 크게 볼 수 있어서 좋았습니다.) 비디오브러시로 일반 브러시처럼 손 쉽게 이용할 수 있는 부분이 참 좋네요. wmv인코딩 하는과정이 더 힘들었던 것 같습니다. 더 재미있는 것들로 다가가는 은광초등학교 2학기! 조금 더 나아가서 중학교까지 가보자구요! 교장선생님~ 열심히 할게요!


게시됨

카테고리

작성자

댓글

“[실버라이트] 비디오브러시 – 정형돈찍기, gee확대경”에 대한 2개의 응답

  1. 디디…디디디 아이… 에에에에에스 씨 오. 지지지지 베이베베이베 베이베 – 실버라이트 비디오브러시를 응용한 재미있는 ㅋㅋㅋ

  2. 정형돈 도장찍기, gee확대경 상범이 잘하네~

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다