[Windows Phone7] CameraCaptureTask 拍照取得照片

2010/08/23

這幾天小玩一下Windows Phone 7 SDK ..
想說玩一下他的拍照..
很酷..模擬器裡面也有模擬這功能…不錯不錯..

簡單介紹一下如何使用Windows Phone 7  去啟動拍照,並且將拍照後的照片取回..

簡單介紹一下版面..
sshot-49


[Silverlight] 用WriteableBitmap對物件做Snapshot(快照)

2010/08/19

以前在玩Silverlight 2.0 的時候,那時候公司對我有一個需求…
就是對使用者的操作結果…進行快照..如果那時候是用Flex 就覺得還好…
但是用Silverlight 2.0 真的是花了我一點時間..

那時候作法網路上都是說把XMAL 傳回Server讓Server去做..
那時候我就用很糟糕的做法,就是直接Clone物件,讓他看起來很像是快照..
事實上都是實體物件….這是不好的作法,哥哥情非得已…


[Silverlight] 在Plesk 平台中 設定MIME 支援 *.xap,*.xaml,*.xbap

基本上自己家裡很難去own 一台Windows Server ..
所以大部分我都把東西放在虛擬主機上面..
現在台灣大部分很多公司都是用Plesk 的管理系統.. ex.捕夢網

如果你把一個Silverlight專案部署上去,然後執行你會發現找不到Xap..
或是一片空白,更有可能是叫你下載xap而不是正常執行..
就是有可能你忘記設定MIME


[Silverlight] BingMap中Zoomlevel 數值與Slider連動(修正Touch Panel會卡卡的問題)

2010/08/18

一不小心又得發一篇跟Bing Map有關的,因為這是遇到的Bug..

修正了..就想說紀錄一下 ..

 

在BingMap中,用Silverlight去操控他的ZoomLevel 很簡單..

而且要去Binding Slider物件的value 也很簡單,至少Google 上面..

可以找得到解決方案…

 

但是..因為最近專案的關係,有涉及到觸控螢幕,就會發現Slider 在連動上面會卡卡的..

花了一點時間修正…

就想說順便寫一篇好了注意到這東西的人蠻少的..

好險公司有一台觸控螢幕…

 

物件配置介紹:

 

sshot-34

 

利用下面的sldMapZoomController 物件去控制 mainMap的ZoomLevel…

 

如果對於插入Bing Map有問題可以參考 這篇 (第一次用Silverlight Bing Map 就上手) .

 

XAML Code 如下:

 

<UserControl x:Class="ZoomMapMemo.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:my="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl" mc:Ignorable="d"
    d:DesignHeight="650" d:DesignWidth="550">
 
    <Grid x:Name="LayoutRoot" Background="White"  VerticalAlignment="Top" 
          Width="550" Height="650" Loaded="LayoutRoot_Loaded">
        
        <my:Map Name="mainMap"  CredentialsProvider="AhkMeJNiD6a8JSGoC2QIHe47XzBhLqzH_y34nDsbv5kIEbBrEZ9WY_hG4x1DZnd-" 
                VerticalAlignment="Top" Height="585" />
        
        <Slider Height="41" HorizontalAlignment="Center" Margin="74,0,72,0" Name="sldMapZoomController" 
                VerticalAlignment="Bottom"  FontSize="15"  Width="404" Maximum="20" Minimum="1" />
        
        
    </Grid>
</UserControl>

 

再來就是C# Code 部分…

提示我寫在註解裡面..

 

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Microsoft.Maps.MapControl;
 
namespace ZoomMapMemo
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }
 
        private int  _mapViewLevelControl=1;
 
        public int MapViewLevelControl
        {
            set
            {
                //讓_mapViewLevelControl 連動
                _mapViewLevelControl = value;
                //讓地圖的Zoom連動
                mainMap.ZoomLevel = value;          
                //讓Slider連動
                sldMapZoomController.Value = value;
            }
            get
            {
                return _mapViewLevelControl;
            }
        }
 
        private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
        {
            //重點是下面兩行的Event,讓touch panel 可以也很順暢連動
            //有關於使用手指手勢放大縮小時所觸發
            mainMap.TouchZoom += mainMap_TouchZoom;
            //如果View改變的時候所觸發
            mainMap.ViewChangeEnd += mainMap_ViewChangeEnd;
 
            //一般只要做到這下述兩行就可以成功了
            mainMap.MouseWheel += mainMap_MouseWheel;
            sldMapZoomController.ValueChanged += mapControlSlider_ValueChanged;
            
           
        }
 
 
        void mainMap_ViewChangeEnd(object sender, MapEventArgs e)
        {
            MapViewLevelControl = Convert.ToInt16(mainMap.ZoomLevel);
        }
        void mapControlSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            MapViewLevelControl = Convert.ToInt16(sldMapZoomController.Value);
        }
        void mainMap_MouseWheel(object sender, MouseWheelEventArgs e)
        {
            MapViewLevelControl = Convert.ToInt16(mainMap.ZoomLevel);
        }
        void mainMap_TouchZoom(object sender, MapTouchZoomEventArgs e)
        {
            MapViewLevelControl = Convert.ToInt16(mainMap.ZoomLevel);
        }
      
    }
}

 

 

 

有關於觸控的部分就在於要多加兩個Event 的處理..

TouchZoom 還有 ViewChangeEnd

 

這樣對於觸控部分連動就會比較順暢…

 

範例:

Get Microsoft Silverlight

讚一下:

 

 

範例下載:



[Silverlight] 動態呼叫並載入XAP 使用

2010/08/16

以前同事問我一個問題.. 是有關於Flex 中是不是可以動態把一顆swf給呼叫起來並且載入..
就突然想到.. 在Silverlight是否可以如法炮製.. 想不到其實原理是差不多的..

今天來筆記一下..如何做到動態呼叫XAP並且使用.. 案例說明..
首先有一個專案叫做BeCalled1 其中版面配置如下..
sshot-41

沒錯就是很簡單一個Image物件,一個TextBlock物件 …
XMAL Code 如下:


[Silverlight] 在Silverlight 中 post 或 get 資料給其他頁面

2010/08/14

在Silverlight 中有時候需要post 或是 透過 get 方式 傳資料出去給其他頁面.作為溝通..
像台灣跟許多金流公司合作會常用到這方法..

這也是最常跟其他頁面溝通的方法..

案例 : 點擊Send Data 按鈕之後 會把 Textbox 中的值傳到 http://www.in2.cc/sample/getpostdata.aspx

那網頁頁面是可以接受無論get 或是 post 名為 data 的資料..

下面是畫面配置..

sshot-29


[Silverlight] 使用BingMap 和 RouteService 做出路徑規劃

2010/08/12

今天這邊是來紀錄一下,如何使用 RouteService 結合BingMap 做出路徑規劃..
此範例設計為 從台灣台北101 路徑規劃到 台灣花蓮七星潭(那是一個很美的地方,有飛機跟海浪的美好回憶)..

首先我們得擺一張Bing Map 地圖進去,如果不太會擺Bing Map Control 進去  Silverlight 中可以參考 這篇(第一次在Silverlight 使用 Bing Map 就上手)
下面是XMAL Code :


[Silverlight] Silverlight 進入 Symbian ?!!

2010/08/11

剛剛在看一些關於Silverlight 的發展..
看到一句話…

Microsoft Releases Silverlight for Symbian Phones
我還以為我眼睛看錯…
剛剛Google 一下發現,好像似乎是真的…
連影片都有了…


[Silverlight] InitParams 在Silverlight 物件起始時傳值進去

話說,如果有時候因為專案需求,可能在Silverlight 一執行的時候
就需要把一些值給帶進去…
就可以能需要這方法,如果不是這麼的緊迫需求,倒是可以執行起來後

透過呼叫Javascript的方式取得(可參考 如何在Silverlight中呼叫Javscript)
最近剛好因為有朋友問就想說筆記一下…


[Silverlight] 小技巧之TextBlock 換行技

2010/08/10

今天被我們家可愛的設計問了一個小問題..
之前解過常常忘記..
在Silverlight 中的 TextBlock 如何做到換行…
身為程式人的直覺就是叫她加上 /r/n …


[Magic] Classic Force - 古典破牌

2010/08/09

魔術師 最不常用的迫牌…

原是因為其中許多小技巧..

會讓表演者會害怕不如預期的迫牌..

但是因為古典就介紹一下…

其實比較起來很多迫牌術簡單多了…

也比較好被應用,比較起來要把古典迫牌用好才真的是高手…


[Silverlight] Bing Map 超簡單版搜尋

這篇文章,是做很簡單的搜尋..
不包含Business 或是 Geocode 的搜尋..
因為重點是簡單快速可使用為主..
首先在XMAL 中加入Map 及兩個MapLayer 以及搜尋和輸入地名的Textbox


[Silverlight] Bing Map 加入標記點(pushpin)

2010/08/07

今天寫一下怎麼在Silverlight 的Bing map 中加入.. 標記點..

其實如果從XAML 中很簡單 ..

只需要在map 中加入 <m:Pushpin Location="緯度,經度" />

即可 ..

<m:Map x:Name="myMap" CredentialsProvider="AhkMeJNiD6a8JSGoC2QIHe47XzBhLqzH_y34nDsbv5kIEbBrEZ9WY_hG4x1DZnd-" Mode="Road" LogoVisibility="Collapsed" >

<m:Pushpin Location="25.02,121.56" />

</m:Map>





[Silverlight] Silverlight 4 - Silverlight Developer Runtime is not installed.

2010/08/06

最近在寫Silverlight 的時候 ,突然出現這畫面..

Unable to start debuggung.The Silverlight Developer Runtime is not installed. Please install a matching version.

sshot-16


[Silverlight] Loaded & LayoutUpdated 的順序

2010/08/05

前幾天在測試一些東西,需要Silverlight 跟 Javascript 互相的呼叫..
但是我再把值傳進去時.. 將一些物件寫在UserControl 的Loaded 中..
發現竟然會出現null reference ... 尚未被 initialize 起來...
網路上查一下文件... 其中提到這句話....

You can handle LayoutUpdated instead of Loaded .
LayoutUpdated is the last “object lifetime” event in the sequence of spinning up a control in Silverlight UI.


[WPF] GeoSense 來做到wifi location

2010/08/04

第一次使用iPod Touch 我打開地圖,說真的,那時候覺得超酷..

照片

因為iPoad Touch 並沒有提供GPS 服務,網路上查一下…
他是使用wifi location ,這東西超酷,利用基地台地理位置做出定位…


今天想出很有哲理的兩句話...

2010/08/02

1. 人長越大,能堅持的事情已經越來越少了 - 感觸來源 : 小時候寫程式可以自由地選用簡單的QBasic 現在長大了,公司堅持要用Java 或是 MS Soltion ,甚至OS 限定,這已經不是你能夠堅持的..

2.選擇的時候總是很慢,但是放棄卻很快 - 感觸來源:挑要買哪一個餅乾,選很久,但是正要結帳的時候,發現買太多了,馬上放棄買剛剛選很久的餅乾...


超酷的人生彷彿就是在過一場很精采的戲碼...

讚一下:


程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.