Windows 8 开发笔记整理(一)

1. 视图状态 :fullscreenportrait  FullScreenLandscape snapped(程序只占屏幕一小部分)  filled(程序占了snapped宽度剩余的区域)
     在设计器里分别设计几种视图   然后监听视图改变事件,以进行相应的处理 
其中   SizeChanged += MainView_SizeChanged;是注册事件。ApplicationView.value是获取当前视图状态的值。值类型定义如下:
04 public enum ApplicationViewState
05 {
06     // 摘要:
07     //     当前应用程序的视图为全屏(没有预期相邻的对齐的应用程序)并且已更改为横向。
08     FullScreenLandscape = 0,
09     //
10     // 摘要:
11     //     当前应用程序视图已缩小到部分屏幕视图作为另一个应用程序对齐的结果。
12     Filled = 1,
13     //
14     // 摘要:
15     //     当前应用程序的视图已对齐。
16     Snapped = 2,
17     //
18     // 摘要:
19     //     当前应用程序的视图为全屏(没有预期相邻的对齐的应用程序)并且已更改为纵向。
20     FullScreenPortrait = 3,
21 }
下面是文件MainPage.xaml.cs 代码: 其中方法MainView_SizeChanged 根据不同的视图状态切换到不同的视图,以为用户提供不同的布局  
public LandPaperCutHandPaint()
        {
            this.InitializeComponent();
            SizeChanged += MainView_SizeChanged;
        }

        void MainView_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            if (ApplicationView.Value == ApplicationViewState.FullScreenLandscape)
            {
            }
            if (ApplicationView.Value == ApplicationViewState.FullScreenPortrait)
            {
                Frame.Navigate(typeof(PaperCutHandPaint));
            }
            if (ApplicationView.Value == ApplicationViewState.Filled)
                Frame.Navigate(typeof(PaperCut.FilledMainPage));
            if (ApplicationView.Value == ApplicationViewState.Snapped)
                Frame.Navigate(typeof(PaperCut.SnappedMainPage));
        }  

另外后来发现可以设置页面固定在一个视图状态上,只是在模拟器上看不到设置的效果,在真实的机器上可以看到。

 2.触控操作:这边的触屏操作已经变得简单多了,只需要在image控件定义一个CompositeTransform对象,然后根据触屏函数参数中的成员变量来进行相应的改变即可
protected override void OnManipulationDelta(ManipulationDeltaRoutedEventArgs args) //控制相应的拖动、放大和旋转
        {//重写触屏函数
            if (isDragging == true)
            {
                transform.TranslateX += args.Delta.Translation.X;
                transform.TranslateY += args.Delta.Translation.Y;
                transform.ScaleX *= args.Delta.Scale;
                transform.ScaleY *= args.Delta.Scale;
                transform.Rotation += args.Delta.Rotation;
                base.OnManipulationDelta(args);
            }
        }  
3. 颜色选择器:
   在codeplex下载开源项目coding4fun的源代码,根据颜色选择器的源代码添加到win8的app中
4.最大的难点是
   writeableBitmap中的Render方法不可用了,这样的话writeablebitmap无法与多边形控件交互。 
  这样的话就首先要把轨迹轮廓绘制到writeablebitmap上。

     考虑过使用writeablebitmapEx的setpixel方法,来将多义线控件的坐标写到writeablebitmap上,但是这个方法效率太低。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值