Tip: “Path” Control in XAML – Boredom Challenge Day 21

Standard

The default controls in Visual Studio for WPF, Windows Phone and WinRT contain a XAML control called Path, which allows us to display simple shapes and drawings in our apps. The advantage of using it comes from the fact that it uses vectoral graphics, which provides us flexibility in several situations, the most prominent of which is, of course, resizing.

What it does is mix parts of different shapes together via a special markup syntax.

What it does is mixing parts of different shapes together via a special markup syntax.

For example, the above Skype logo is a Path object, which looks like the following in our XAML code:

        <Path Stretch="Uniform" UseLayoutRounding="False" Fill="White" Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="145,100,0,0" Data="F1 M 15.364,15.168C 14.9453,15.7707 14.3307,16.2427 13.5267,16.5813C 12.7213,16.9186 11.7707,17.088 10.6693,17.088C 9.35334,17.088 8.26267,16.86 7.4,16.3933C 6.79067,16.06 6.29467,15.612 5.91334,15.0546C 5.52801,14.4973 5.33601,13.9507 5.33601,13.4173C 5.33601,13.1027 5.45467,12.8306 5.68934,12.6066C 5.92533,12.3826 6.228,12.2693 6.58801,12.2693C 6.88267,12.2693 7.13334,12.36 7.33734,12.5333C 7.54134,12.708 7.71334,12.964 7.85334,13.3C 8.02001,13.688 8.20267,14.0133 8.39468,14.276C 8.58801,14.5293 8.86001,14.744 9.21201,14.9133C 9.55868,15.0813 10.02,15.164 10.5973,15.164C 11.388,15.164 12.028,14.9933 12.5173,14.656C 13.008,14.316 13.244,13.9013 13.244,13.4C 13.244,13.0014 13.116,12.684 12.856,12.436C 12.5933,12.1867 12.2533,11.996 11.8307,11.8627C 11.4067,11.728 10.8373,11.5853 10.124,11.436C 9.16801,11.2267 8.36667,10.9827 7.71734,10.704C 7.06667,10.4226 6.55067,10.04 6.16801,9.55463C 5.78268,9.06666 5.592,8.45866 5.592,7.74C 5.592,7.05335 5.79333,6.43732 6.2,5.904C 6.604,5.36933 7.18668,4.95866 7.952,4.672C 8.71334,4.38667 9.60934,4.24403 10.6333,4.24403C 11.4533,4.24403 12.164,4.33866 12.764,4.52799C 13.364,4.72001 13.8613,4.97065 14.2627,5.284C 14.6587,5.60001 14.9493,5.92933 15.1373,6.27869C 15.3227,6.628 15.4133,6.97065 15.4133,7.30134C 15.4133,7.61066 15.2933,7.89066 15.06,8.13734C 14.828,8.38264 14.528,8.508 14.1787,8.508C 13.864,8.508 13.6187,8.43464 13.4453,8.27998C 13.2787,8.13334 13.104,7.896 12.916,7.56666C 12.676,7.10401 12.3907,6.74799 12.0573,6.49198C 11.7307,6.24 11.1947,6.10932 10.452,6.11066C 9.76267,6.11066 9.21201,6.25065 8.79467,6.52665C 8.37467,6.80668 8.17467,7.13065 8.17467,7.51066C 8.17467,7.75065 8.24401,7.95069 8.38267,8.12397C 8.52001,8.29731 8.71734,8.44666 8.96667,8.57331C 9.21734,8.70267 9.47334,8.80399 9.728,8.87333C 9.98934,8.94666 10.4173,9.05335 11.0147,9.19465C 11.7653,9.35465 12.4453,9.53602 13.0573,9.73331C 13.6667,9.92933 14.1867,10.1693 14.616,10.4533C 15.0493,10.736 15.388,11.096 15.6293,11.5333C 15.872,11.9706 15.9947,12.5027 15.9947,13.1307C 15.9947,13.8867 15.7827,14.5667 15.364,15.168 Z M 20.4413,12.2106C 20.52,11.708 20.5613,11.1933 20.5613,10.6667C 20.5613,5.19999 16.132,0.769325 10.664,0.769325C 10.14,0.769325 9.624,0.812019 9.11868,0.890663C 8.20801,0.326668 7.13201,7.62939e-006 5.97867,7.62939e-006C 2.676,7.62939e-006 0,2.67731 0,5.98133C 0,7.13468 0.32534,8.20936 0.890678,9.12269C 0.810669,9.628 0.768005,10.14 0.768005,10.6667C 0.768005,16.1333 5.2,20.564 10.664,20.564C 11.1893,20.564 11.7053,20.524 12.2107,20.444C 13.1213,21.0067 14.1973,21.3333 15.3507,21.3333C 18.656,21.3333 21.3333,18.656 21.3333,15.3533C 21.3333,14.2 21.004,13.1253 20.4413,12.2106 Z "/>

The extremely long string value in the Data property of the Path object is how our shape is defined; meaning, it is the mathematical calculation. We can find many icons and symbols for Path control on the internet (I usually use http://www.thexamlproject.com, which contains hundreds of them). However, if you are interested in how you can create them yourself, Blend can import Adobe Illustrator files, so could draw them in Adobe Illustrator and import them to your project via Blend. And if you wonder how the syntax works, this article might be a good place to start.

Now, you might be saying “Why bother with this when I can just use images?”. Well, there are a few specific situations where using a Path has advantages.

➤ Read on to see when we should use a Path instead of an Image

Advertisements

Uploading an Image from Windows Phone to Azure Blob Storage

Standard

Azure blob (binary large object) storage allows us to store files on the cloud and it can be used in many scenarios, such as storing user related files (e.g. profile pictures), keeping backup or storing audio and video files for our application. In this article, we’ll see how we can develop a Windows Phone application that takes (or selects) a picture and uploads it to Windows Azure.

Note: I was showing the latest uploaded image here, but unfortunately I had to cancel my Azure subscription. Therefore, the storage key in this example (and in the source code) will not work. Don’t forget to use your own storage account credential and key.

Then, let’s begin by opening up Visual Studio and creating a new Windows Phone project.

1

2

➤ Let’s see how we can upload an image to Azure…

Windows Phone 7 – XNA ile Akselerometre Kullanımı

Standard

Akselerometre kullanımı, şüphesiz ki mobil cihazlarda etkili bir şekilde kullanıldığında oyunların eğlence faktörünü kat kat yükselten özelliklerden biri. Bir yarış oyununda telefonumuzu direksiyon gibi sağa sola çevirerek aracımızı kontrol etmemiz buna verilecek en iyi örneklerdendir. 🙂 Windows Phone 7 için geliştirdiğimiz oyunlarımıza bu özelliği ekleyerek çok daha eğlenceli oyunlar yaratabiliriz. Bu yazımda, Windows Phone 7 için akselerometre kullanan örnek bir oyun geliştireceğiz.

Öncelikle, akselerometrenin ne olduğundan kısaca bahsetmek istiyorum. Akselerometreye aynı zamanda ivmeölçer de denir, ve adı üzerinde, ivmeyi ölçer. 😀 Ancak bu ölçmeyi yerçekimine göre yaptığı için, bu aleti kullanarak telefonumuzun o anki duruşunu (yani dik, yatay vs.) öğrenebiliriz. Windows Phone 7 cihazımızda 3 boyutlu bir akselerometre vardır, yani 3 boyut içerisinde tam olarak nasıl durduğu bilgisine oyunumuz içinde ulaşabiliriz. Bu bilgiyi de oyunlarımızda kullanabiliriz. 🙂

O halde, ilk iş kendimize bir Windows Phone 7 XNA projesi açalım ve versiyon olarak Windows Phone 7.1′i seçelim. Projenin adına AccelerometerGame diyorum.

➤ Devamını okuyun…

Windows Phone 7 – XNA ile Gesture Kullanımı

Standard

Windows Phone 7 için yazdığımız bir uygulamada, “gesture” dediğimiz el hareketlerini kullanarak dokunmatik ekranın özelliklerinden çok daha etkili faydalanabiliriz. Ekrana çift dokunma, basılı tutma ya da sürükleme tarzı hareketleri uygulamamıza etkili bir şekilde yerleştirmek ise XNA Framework içindeki pek çok hazır sınıf sayesinde düşündüğünüzden çok daha kolay. Bu yazımda, birlikte içinde gesture kullanacağımız bir XNA programı yazacağız.

Öncelikle, işe Visual Studio içinde yeni bir Windows Phone Game projesi açarak başlayalım. Bu projenin adını WP7GestureXNA koydum. Projeyi açarken versiyon sorduğunda da Windows Phone 7.1 seçelim.

➤ Devamını okuyun…

Windows Phone 7 – İlk İzlenimler

Standard

Microsoft Türkiye’nin geçtiğimiz Aralık ayında düzenlediği yarışma sonucunda kazandığım LG E900 Optimus 7 model Windows Phone 7′me geçtiğimiz günlerde kavuşmanın sevincini yaşıyorum. 😀 1 Ghz işlemcisi, 5 MP kamerası ve 16 GB dahili hafızası bulunan bu telefona elime aldığımdan beri hayran kaldığımı söyleyebilirim. 🙂 Şu an Türkiye’de sadece Vodafone aracılığı ile satılan bu cihaz ile ilgili ilk deneyimlerimi, gözlemlerimi ve izlenimlerimi sizlerle paylaşmak istedim.

Yazıma girmeden önce bir uyarı yapmak istiyorum. Bu telefon sahip olduğum ilk smartphone olduğu için her özelliğini büyük bir hevesle en ince ayrıntılarına kadar inceledim. Yani yazımı biraz detaylı bulabilirsiniz. 🙂

➤ Devamını okuyun…

Windows Phone 7’de Veritabanı Kullanımı

Standard

Windows Phone 7, Mango güncellemesi ile pek çok yeni özellik kazandı. Bunlardan biri de cihaz üzerinde SQL Compact Edition kullanarak Isolated Storage tabanlı yerel bir veritabanı tutabilme imkanı. Yani, artık Windows Phone 7 programlarımızda veritabanı kullanabilmenin rahatlığına sahibiz.

Bu yazımda, birlikte Linq to SQL ile bir veritabanının nasıl kullanıldığını gösteren küçük bir uygulama yazacağız.

İlk önce yapmamız gereken şey, yeni bir Windows Phone Application projesi açmak. Ayrıca, bu programımız için Windows Phone SDK 7.1 sürümü gerekli. Ben bu örneğimizde projemizin adını “DatabaseApp” koydum.

➤ Devamını okuyun…

Windows Phone Marketplace ve Yalla Apps

Standard

Microsoft Yaz Okulu için yapmış olduğum Windows Phone 7 projesi sayesinde, Windows Phone Marketplace ve Yalla Apps ile tanıştım. Yaz okulu bittikten kısa bir süre sonra da projemin kabul edilip Windows Phone Marketplace’e konulmasıyla, bu konudan bahsetmek istedim.

Windows Phone Marketplace, Microsoft’un yeni mobil işletim sistemi Windows Phone 7 için yaratmış olduğu market platformu. Aynı zamanda Zune Marketplace ve Xbox Live ile de birlikte çalışmakta. Kullanıcılarına binlerce program arasından istediklerini seçip satın alma ve indirme imkanı sunan bu platformun bizi ilgilendiren asıl özelliği ise, içerisindeki programların çoğunun üçüncü parti yazılımlar olması. Yani, bunun anlamı şu: Kendimiz Windows Phone 7 yazılımları yaparak bunları Windows Phone Marketplace’de kolayca satabiliriz.

➤ Devamını okuyun…