View Full Version : سوال: سوئیچ کردن بین userControl ها
AftaB66
سه شنبه 19 فروردین 1393, 11:18 صبح
سلام.
سال نو همگی مبارک .
من یکسری یوزرکنترل دارم که می خوام بین اونها سوئیچ داشته باشم.
یوزرکنترل اول رو روی main window قرار دادم و میخوام از usc1 به usc2 و.. حرکت کنم.
آیا باید این یوزرکنترل ها رو mainWindow.content قرار بدم. چطور باید این انتقال رو انجام بدم ؟
Boy_nn
سه شنبه 19 فروردین 1393, 13:06 عصر
از طریق کد میتونی مقدار mainWindow.content رو عوض کنی و یوزر کنترل جدید روش قرار بدی
AftaB66
سه شنبه 19 فروردین 1393, 16:35 عصر
از طریق کد میتونی مقدار mainWindow.content رو عوض کنی و یوزر کنترل جدید روش قرار بدی
در mainWindow.xaml:
<local:UserControl1></local:UserControl1>
در .cs یوزرکنترل ها :
UserControl2 uc = new UserControl2(this);
((Window)(this.Parent as Window)).Content = uc;
syntax کدهام درسته؟ (کار می کنه)
rg_BlackRose
سه شنبه 19 فروردین 1393, 18:10 عصر
سلام
شما برای اینکار
1. یک ContentControl بر روی MainWindow ایجاد کنید.(در اینجا TContent نام گذاری شده)
2. یک کلاس تعریف کنید و کدهای زیر رو درونش قرار بدید.(در اینجا نام کلاس ContentManager در نظر گرفته شده)
class ContentManager
{
private static string CurrentUserControlName;
public static void add(UserControl oControl)
{
var MWindow = App.Current.Windows.Cast<System.Windows.Window>().FirstOrDefault(window => window is MainWindow) as MainWindow;
if (MWindow != null)
{
if (oControl.Name != CurrentUserControlName)
{
MWindow.TContent.Content = oControl;
CurrentUserControlName = oControl.Name;
}
}
}
}
3. حالا برای قرار دادن UserControl جدید بر روی MainWindow از هر جای پروژه، از کد زیر استفاده کنید.
ContentsManager.add(new MyUserControl { Name = "MyUserControlName" });
نکته: به جای MyUserControl یوزر کنترل مورد نظرتون و به جای MyUserControlName یک نام برای یوزر کنترل مورد نظر قرار بدید.
موفق باشید.
AftaB66
شنبه 23 فروردین 1393, 08:25 صبح
سلام
شما برای اینکار
1. یک ContentControl بر روی MainWindow ایجاد کنید.(در اینجا TContent نام گذاری شده)
2. یک کلاس تعریف کنید و کدهای زیر رو درونش قرار بدید.(در اینجا نام کلاس ContentManager در نظر گرفته شده)
class ContentManager
{
private static string CurrentUserControlName;
public static void add(UserControl oControl)
{
var MWindow = App.Current.Windows.Cast<System.Windows.Window>().FirstOrDefault(window => window is MainWindow) as MainWindow;
if (MWindow != null)
{
if (oControl.Name != CurrentUserControlName)
{
MWindow.TContent.Content = oControl;
CurrentUserControlName = oControl.Name;
}
}
}
}
3. حالا برای قرار دادن UserControl جدید بر روی MainWindow از هر جای پروژه، از کد زیر استفاده کنید.
ContentsManager.add(new MyUserControl { Name = "MyUserControlName" });
نکته: به جای MyUserControl یوزر کنترل مورد نظرتون و به جای MyUserControlName یک نام برای یوزر کنترل مورد نظر قرار بدید.
موفق باشید.
سلام.
ببخشید این چند روز اصلا on نشدم.
ممنون خیلی روش خوب و مختصر و مفیدیه .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.