為了更改ShellTile的格式, 觀察到只可能從一個地方著手,
就是StandardTileData ,
這時候觀察他是繼承父類ShellTileData而來的,
所以這時候想說是否可以繼承ShellTileData 建立一個自己的ShellTileData,
從而改變ShellTile的格式.
但是這個嘗試失敗了, 至於失敗的原因..用過就知道了, 但也很有可能是小弟功力不足所致
這時候想了想 StandardTileData 裡面有兩個參數
分別是 BackgroundImage 以及BackBackgroundImage
想說是否可以動態產生圖片 讓他們來使用?
這時查到了一個叫做WriteableBitmap的東西 貌似可以使用
所以著手寫了一個小Demo
付上源代碼:
Canvas canvas = new Canvas ();
canvas.Width = 173;
canvas.Height = 173;
ImageBrush brush = new ImageBrush ();
BitmapImage image = new BitmapImage ();
image.UriSource = new Uri ("/MyDemos;component/Resource/haha.png", UriKind.RelativeOrAbsolute);
image.CreateOptions = BitmapCreateOptions.None;
brush.ImageSource = image;
canvas.Background = brush;
TextBlock block = new TextBlock ();
block.Width = 100;
block.Height = 100;
block.TextAlignment = TextAlignment.Center;
block.FontSize = 50;
block.Text = "Maca";
canvas.Children.Add (block);
WriteableBitmap backgroundImage = new WriteableBitmap (173, 173);
backgroundImage.Render (canvas, null);
backgroundImage.Invalidate ();
image1.Source = backgroundImage;
效果圖:
至於如何變成圖檔可以參考
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.extensions.savejpeg(v=vs.92).aspx
沒有留言:
張貼留言