آموزش مقدماتی برنامه نویسی در wp7
ابزار های مورد نیاز:
توانایی های مورد نیاز :
اصطلاح هایی که من در این آموزش بکار میبرم :
توجه : اگر حداقل زبان #C و یا VB.Net را بلد نیستید این مطب را نخوانید
بعداز نصب ابزار های بالا ، به ترتیب .
حالا میخوایم برنامه Hello World که هر برنامه نویسی میشناستش رو بنویسیم.
اول VS رو اجرا کرده و بر روی New Project کلیک کنید.
ساخت پروژه :
خوب حالا توی صفحه باز شده از سمت چپ وارد دسته زبان دلخواه خود شده و بر روی SilverLight for Windows Phone کلیک کنید.
حالا سمت راست میتونید انواع مختلف پروژه هایی که میشه برای WP ساخت رو ببینید :
در پایین نام پروژه را HelloWorldApp نوشته و بر روی OK کلیک کنید.
حالا یک صفحه ظاهر میشود که ورژن SDK رو از شما میپرسه.
داخلش Windwos Phone OS 7.1 و 7.0 هست. که بهتر است همان 7.1 را انتخاب کرده و OK کنید.
حالا یک صفحه به شکل زیر ظاهر میشود که در سمت چپ ظاهر برنامه و سمت راست کد وجود دارد.
کد های سمت راست ، کدهای SilverLight هست که برای ظاهر برنامه از این کدها استفاده میشود. و کد های پشت برنامه همان #C و یا VB هستند.
ساخت برنامه :
حالا Toolbox را بیاورید . برای اینکار از منو View بر روی ToolBox کلیک کنید. و یا CTRL+W,X
در اینجا لیستی از کنترل هایی که میتوانید برای WP استفاده کنید وجود دارد.
بر روی Button کلیک کرده و آن را کشیده و بر روی فرم قرار دهید.
شما میتوانید Button را در هر مکان از صفحه Design کشیده و قرار دهید.
آن را در وسط صفحه قرار دهید.
حالا بیایید متن روی دکمه را تغییر دهیم. از سمت راست در Propertice بر روی Content رفته و محتویات آن را به Click Me! تغییر دهید و Enter را فشار دهید.
حالا مثل مراحل قبل ولی اینبار یک TextBlock را بر روی فرم قرار دهید و هر چیزی که در قسمت Text آن در Propertice هست را پاک کنید که به یک مستطیل خالی تبدیل شود.
حالا بر روی Button ای که بر روی فرم قرار دادید دو کلیک کنید تا یک فایل دیگر به نام MainPage.Xaml.cs باز شود.
خوب همانطور که میبینید یک Event Handler برای Click دکمه هم ایجاد شده
شما فقط نیاز دارید یک خط کد را بنویسید به صورت زیر : private void button1_Click(object sender, RoutedEventArgs e)
{
textBlock1.Text = "Hello World!!!"; //خطی که باید اضافه شود
}
حالا برنامه شما آمادست. با زدن بر روی علامت Play بالا و یا دکمه F5 برنامه شما اجرا میشود.
بعد از اجرای برنامه بر روی دکمه "Click Me!!!" کلیک کرده و میبینید که متنی که در برنامه نوشتید پایین ظاهر میشود.
به همین راحتی یک برنامه نوشتید.
خوب حالا وقت این است که ببینیم وقتی شما یک برنامه ویندوز فون میسازید چه اتفاق هایی می افتد.
Solution Explorer:
با ساخت پروژه ، VS این فایل ها را برای شما میسازد که تک تک آنها توضیح میدهم :
فایلهای App.xaml و MainPage.xaml دو فایل XAML هستند و فایلهای App.xaml.cs , MainPage.xaml.cs دو فایل #C هستند (یا App.xaml.vb هست که فایل VB.Net میباشد)
دو فایل با پسوند CS فایلهای کد پشت صحنه مربوط به فایلهای XAML هستند.
فایلهای دیگر نیز عکس هستند :
در زیر References نیز لیستی از کتابخانه هایی که (LIB , Assembly) برنامه شما با آنها کار میکند آورده شده است.
در زیر بخش Propertice این فایلها را میبینید :
App.xaml و App.xaml.cs :
حالا فایل App.xaml.cs را باز کنید. میبینید که یک Namespace به اسم پروژه شما از نوع کلاس App که معرف کلاس Silverlight برنامه است تعریف شده است.
اینجا جایی هست که عملیات شروع برنامه و اتمام برنامه مدیریت میشوند :
شما آن را به فرمت xml میشناسید ولی این یک فایل XAML هست .
شما باید از این فایل برای نگه داری منابعی مانند : رنگ ، رنگ های از نوع Brush و استایل هایی که در برنامه استفاده میکند.
دقت کنید که Element اصلی Application میباشد که شامل 4 تعریف XML میباشد (Xmlns)
دومین تعریف : تعریف خود زبان XAML میباشد.
سومین تعریف : کنترل های ویندوز فون
چهارمین : ظاهر و...
این دو فایل هنگام کامپایل شدن ، VS آنها را کامپایل کرده و فایل دیگری به نام App.g.cs میسازد.
در زمان اجرای برنامه این دو فایل هستند که تعیین میکنند باید یک برنامه با سایز 480x800 ساخته شود(فراموش نکنید در ویندوز فون 7 این سایز ثابت است)
و یک سری توضیحات دیگر در سایت منبع هست که زیاد مهم نیست :D
MainPage.xaml , MainPage.xaml.cs :
این فایل همان صفحه اصلی برنامه شما است که در آن یک سری کد هم نوشتید.
فایل MainPage.xaml.cs را که باز کنید که کلاس میبینید که از نوع PhoneApplicationPage تعریف شده است.
بعد از آن d به منظور Designer و mc به منظور Markup Compability میباشد که از مزیت های برنامه نویسی XAML میباشد.
(توضیحات کامپایل و اجرا همانند قبل است)
که بعد از آن Grid , که در آن یک StackPanel میباشد به اسم TilePanel و چند TextBlock و یک Grid دیگر به نام ContentPanel میبینید.
به عنوان مثال همان دکمه ای که گذاشتید و درونش نوشتید Click Me! را اینجا میبینید.
مقدار Content را نیز میتوانید از همینجا تغییر دهید (بجای منوی Propertice)
اگر بر روی Button دابل کلیک کنید خود VS برای شما یک Event Handler میسازد که میتوانید مقدار آن را در رویدادی که در قسمت کد نویسی به عنوان Click هست ببینید.
از این قسمت شما قابلیت های بیشتری برای طراحی نیز در اختیارتان میباشد(ولی خوب سخت تر نیز هست)
در اصل کد نویسی Silverlight همین قسمت میباشد.
وقتی شما F5 میزنید در فولدر Bin->Debug یک فایل XAP نیز ساخته میشود.
که این فایل برنامه شماست میتوانید آن را خودتان بر روی گوشی نصب کنید.
کد:
کد:
namespace HelloWorldApp
{
public partial class App : Application
{
public PhoneApplicationFrame RootFrame { get; private set; }
public App()
{
...
}
...
}}
کد:
<Application
x:Class="HelloWorldApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
...
</Application>
کد:
namespace HelloWorldApp
{
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
}
...
}
}
کد:
<phone:PhoneApplicationPage
x:Class="HelloWorldApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<Grid x:Name="LayoutRoot" Background="Transparent">
...
</Grid>
</phone:PhoneApplicationPage>
کد:
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="HELLO WORLD APP"
Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0"
Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Content="Click Me!" Height="72" HorizontalAlignment="Left"
Margin="146,143,0,0" Name="button1" VerticalAlignment="Top"
Width="160" Click="button1_Click" />
<TextBlock Height="59" HorizontalAlignment="Left" Margin="146,287,0,0"
Name="textBlock1" Text="" VerticalAlignment="Top" Width="160" />
</Grid>
</Grid>