PDA

View Full Version : اتقال طراحی انجام شده در wpf به winapp



mina.net
شنبه 01 اسفند 1388, 17:09 عصر
سلام دوستان
من یک window در wpf طراحی کردم مشابه چیزی که توی ضمیمه می تونید ببینید . حالا می خوام این طراحی رو در یک فرم winapp استفاده کنم باید چیکار کنم.
من هدفم اینه که اندازه ها در فرم اصلی برنامه ام بصورت نسبی باشند و مشکل تغییر سایز و رزولیشن نداشته باشند.


<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window8" Height="400" Width="400">
<Grid >
<Grid.ColumnDefinitions >
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width=".95*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions >
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="13*"></RowDefinition>
</Grid.RowDefinitions>

<Button Margin="2" Name="btn1" Grid.Column="0" >btn1</Button>
<Button Margin="2" Name="btn2" Grid.Column="1">btn2</Button>
<Button Margin="2" Name="btn3" Grid.Column="2">btn3</Button>
<Button Margin="2" Name="btn4" Grid.Column="3">btn4</Button>
<Button Margin="2" Name="btn5" Grid.Column="4">btn5</Button>
<Button Margin="2" Name="btn6" Grid.Column="5">btn6</Button>
<Button Margin="2" Name="btn7" Grid.Column="6">btn7</Button>

</Grid>
</Window>

mina.net
دوشنبه 03 اسفند 1388, 17:04 عصر
سلام
لطفا یکی کمک کنه. حداقل بگید این کار عملی هست یا نه؟

رضا عربلو
سه شنبه 04 اسفند 1388, 10:55 صبح
بله امکان پذیر است.توسط کامپاننت ElementHost
http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.elementhost.aspx
http://nayyeri.net/host-wpf-controls-in-windows-forms

hhojjatt
سه شنبه 04 اسفند 1388, 12:45 عصر
می تونی یک کلاس لابرری درست کنی بعد یک کنترل سفارشی wpf ایجاد کنید یعنی همین پنجره فعلی را در ان ایجاد کنید بعد فایل dll ساخته شده را براحتی در هر جا استفاده کنید البته در ویژال 2008 سرویس پک 1

mina.net
سه شنبه 04 اسفند 1388, 16:35 عصر
سلام
من سعی کردم براساس توضیحی که شما دادید انجام بدم ولی نشد.

اگه می شه با یک مثال توضیح بدید ممنون می شم.

رضا عربلو
سه شنبه 04 اسفند 1388, 16:56 عصر
این پست را ببینید:
http://barnamenevis.org/forum/showthread.php?t=195867&highlight=ElementHost

mina.net
سه شنبه 04 اسفند 1388, 22:10 عصر
سلام
ممنون که وقت می زارید.
من elmenthost با توجه به توضیحاتی که شما در اون تاپیک دادید و کمی هم msdn موفق شدم طراحی انجام شده در wpf رو تو winapp قرار بدم. ولی اگه همش همین هست که اصلا فایده ای نداره. انگار یک عکس رو گذاشتم روی یک فرم و اون استریچ کردم.
من می خوام کنترلها دسترسی داشته باشم و براشون برنامه نویسی کنم. البته در محیط winapp .
شاید درست توضیح ندادم. در حقیقت می خوام تو wpf تمام کنترلهای رو فرم رو طراحی کنم. و هنگامی هم که به winapp انتقال دادم هر کدوم از اون کنترل ها به صورت جداگانه قابل دسترس باشند.

رضا عربلو
چهارشنبه 05 اسفند 1388, 08:03 صبح
اگر منظورتان این است که در زمان design در ویژوال استودیو بتوان این المان ها را جابجا و ... کرد من تجربه ای در ااین زمینه ندارم.
وولی خوب شما می توانید المان های مورد نظر خود را بصورت public اعلان نمایید مثلاً می خواهید به یک دکمه در یوزرکنترل دسترسی داشته باشیدو ولی این کار چندان از نظر قوانین oo کار خوشایندی نیست و encapsulation را رعایت نمی کند
و بهتر است به جای آن برای یوزر کنترل مورد نظر خود اونت سفارشی بسازید. مثلاً فرض کنید که یک یوزر کنترل برای درخواست نام کاربری و پسورد نوشته اید می توانید برای این یوزر کنترل خود اونت هایی از قبیل OnLoginSuccessful و OnLoginFailure و ... بنویسید و به راحتی به آن functionality مورد نظر از User Control خو دسترسی داشته باشید.