ويديوهاي رايگان آموزشي WPF
يك سري ويديوي آموزشي رايگان WPF بجا مانده از http://archive.visitmix.com/favicon.icoBoot Camp 2008 را http://archive.visitmix.com/favicon.icoاز اينجا ميتوانيد دريافت كنيد كه شامل مباحث مختلف بايندينگ، styles ، prism و غيره است.
منبع : VahidNasiri
ویدئو های آموزشی رایگان Expression Blend
دنبال يك سري ويديوي آموزشي Expression blend بودم كه آدرس زير را پيدا كردم:
امكان مشاهدهي رايگان آنها موجود است، همچنين اگر برنامهي http://www.internetdownloadmanager.com/favicon.icointernet download manager را نصب كنيد، هنگام گشودن هر صفحه، يك آيكون ذخيره سازي ويديوي مورد نظر نيز ظاهر ميشود كه به اين صورت ميتوان تمام ويديوها را دانلود كرد.
منبع : VahidNasiri
کتاب فارسی رایگان آموزش MVVM
آقای نصیری مثل همیشه با کتاب های عالی و رایگانشون همه رو شرمنده می کنن:خجالت:
سری آموزشی MVVM
فهرست قسمت اول:
- آشنايي با اجزاي مختلف الگوي M-V-VM
- مزاياي استفاده از الگوي M-V-VM
- اصول كاري و بايدها و نبايدهاي الگوي M-V-VM
- بايدها و نبايدهاي يك View
- بايدها و نبايدهاي ViewModel
- مروري بر معايب الگوي M-V-VM
فصل 2- معرفي مثالي مقدماتي از پياده سازي الگوي M-V-VM در WPF
- ساختار پوشههاي يك برنامهي MVVM
http://www.box.net/favicon.icoدريافت قسمت دوم
http://www.box.net/favicon.icoدريافت مثال قسمت دوم
فصل 3- آشنايي با WPF MVVM Toolkit
- نصب WPF Model-View-ViewModel Toolkit
http://www.box.net/favicon.icoدريافت قسمت سوم
http://www.box.net/favicon.icoدريافت مثال قسمت سوم
فصل 4- آشنايي با MVVM Light Toolkit
- ساير كتابخانهها و Framework هاي موجود MVVM
- نصب قالبهاي MVVM Light Toolkit مخصوص VS.Net 2008
- نصب قالبهاي MVVM Light Toolkit مخصوص VS.Net 2010
- نصب Code Snippets مجموعه MVVM Light Toolkit در VS.Net 2008/2010
- نصب فايلهاي بايناري كتابخانهي MVVM Light Toolkit
- نصب قالبهاي MVVM Light Toolkit مخصوص Expression Blend
- بررسي صحت نصب كتابخانهي MVVM Light Toolkit
- استفاده از Code Snippets نصب شده
- مثال اول - بررسي RelayCommand
- مثال دوم - بررسي Messenger
- مثال سوم - بررسي Blendability
- مثال چهارم - بررسي EventToCommand
http://www.box.net/favicon.icoدريافت قسمت چهارم
http://www.box.net/favicon.icoدريافت مثالهاي قسمت چهارم
فصل 5- تعيين اعتبار ورودي كاربر و الگوي MVVM
http://www.box.net/favicon.icoدريافت قسمت پنجم
http://www.box.net/favicon.icoدريافت مثال قسمت پنجم
منبع : http://vahid.nasiri.googlepages.com/weblink.gifVahidNasiri Blog
رفتن فكوس از يك كنترل به يك كنترل ديگه با زدن دكمه Enter
براي رفتن فكوس از يك كنترل به يك كنترل ديگه با زدن دكمه Enter
توي رويداد KeyUp كنترلتون بنويسيد
var uie = e.OriginalSource as UIElement;
if (e.Key == Key.Enter)
{
e.Handled = true;
uie.MoveFocus(newTraversalRequest(FocusNavigationD irection.Next));
}
نقل قول: 1001 نکته در WPF
برای قرار دادن یک کنترل بر روی کنترل های دیگر یا در زیر آن ها می توانید از خصیصه ی Panel.ZIndex استفاده کنید. بدین صورت که، کنترلی که بیشترین مقدار ZIndex را داشته باشد، روی سایر کنترل هایی قرار میگیرد که ZIndex آنها کمتر از مقدار آن باشد و برعکس. در صورتی که مقدار ZIndex دو کنترل برابر باشد، کنترلی که دیرتر ایجاد می شود، بر روی سایر کنترل ها قرار می گیرد.
<Grid>
<Rectangle Name="A" Panel.ZIndex="3" Width="100" Height="100" Fill="blue"/>
<Rectangle Name="B" Panel.ZIndex="1" Width="100" Height="100" Fill="yellow"/>
<Rectangle Name="C" Panel.ZIndex="2" Width="100" Height="100" Fill="green"/>
</Grid>
در مثال فوق مستطیل A بر روی مستطیل B و C و مستطیل C بر روی B و زیر A قرار می گیرد.
نقل قول: 1001 نکته در WPF
با سلام
اینک کد که به صورت کامل مشکل فقط عدد بود یک تکست باکس رو حل میکنه این کد قادر هست که حتی Ctrl+V رو هم تشخیص بده
// Use the PreviewTextInputHandler to respond to key presses
private void PreviewTextInputHandler(Object sender, TextCompositionEventArgs e)
{
e.Handled = !IsTextAllowed(e.Text);
}
private Boolean IsTextAllowed(String text)
{
foreach (Char c in text.ToCharArray())
{
if (Char.IsDigit(c) || Char.IsControl(c)) continue;
else return false;
}
return true;
}
// Use the DataObject.Pasting Handler
private void PastingHandler(object sender, DataObjectPastingEventArgs e)
{
if (e.DataObject.GetDataPresent(typeof(String)))
{
String text = (String)e.DataObject.GetData(typeof(String));
if (!IsTextAllowed(text)) e.CancelCommand();
}
else e.CancelCommand();
}
PreviewTextInput="PreviewTextInputHandler" DataObject.Pasting="PastingHandler"
منبع : karlhulme.wordpress.com
نقل قول: 1001 نکته در WPF
شاید سوال خیلی از بچه های انجمن باشه این سوال که چطور میشه با زدد کلیک بر روی هدر یک ستون Checkbox های زیر اون ستون همگی true یا False بشن
خب من چندتا راه حل پیدا کردم که یکی از اونا که به نظر خودم خیلی بهتر بود استفاده از یک Checkbox در هدر اون ستون هست که با تیک خوردنش همه Checkbox زیر اون ستون هم تیکشون true یا False بشن
کد Xaml اون به صورت زیر است :
<dg:DataGridTemplateColumn>
<dg:DataGridTemplateColumn.HeaderTemplate>
<DataTemplate x:Name="Checking">
<CheckBox x:Name="CheckBoxClickAll" Click="CheckBoxClickAll" Content="{Binding}" IsChecked="False" IsThreeState="False"/>
</DataTemplate>
</dg:DataGridTemplateColumn.HeaderTemplate>
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Width="14" VerticalAlignment="Center" IsChecked="{Binding Selecting, UpdateSourceTrigger=PropertyChanged}" x:Name="LocalColumnCheckbox" />
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
متد :
private void CheckBoxClickAll(object sender, RoutedEventArgs e)
{
var checkBox = e.OriginalSource as CheckBox;
if (checkBox != null && checkBox.Name == "CheckBoxClickAll")
{
if (checkBox.IsChecked.GetValueOrDefault(false))
{
//Checked
}
else
{
//UnChecked
}
}
}
موفق باشید
نقل قول: 1001 نکته در WPF
Splash Screen با کد مدیریت نشده در WPF توسط یک کلاس
استفاده از یک عکس برای Splash Screen ..
رویداد Startup Application
private void Application_Startup(object sender, StartupEventArgs e)
{
SplashScreen sc = new SplashScreen(@"splashscreen.gif");
sc.Show(true);
}
خودتون ببینید بهتره :
http://msdn.microsoft.com/en-us/libr...ashscreen.aspx
نقل قول: 1001 نکته در WPF
استفاده از Timer در WPF
این کامپوننت بسیار شبیه به کامپوننت Timer موجود در WinForm است.
System.Windows.Threading.DispatcherTimer tmr = new System.Windows.Threading.DispatcherTimer();
تعیین زمان:
tmr.Interval = TimeSpan.FromMilliseconds(100);
رویداد تیک:
tmr.Tick += new EventHandler(tmr_Tick);
موفق باشید.
1 ضمیمه
نقل قول: 1001 نکته در WPF
سلام بواسطه استفاده از این قطعه کد میشه فرم رو به همچین شکلی در آورد.با قابلیت مدیریت offset
<Rectangle RadiusX="10" RadiusY="10">
<Rectangle.Fill>
<ImageBrush ImageSource="/Glass;component/Images/shutterstock_13992.jpg" Stretch="UniformToFill" />
</Rectangle.Fill>
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0,1" EndPoint="0,0">
<GradientStop Offset="0.0" Color="Black" />
<GradientStop Offset="1.0" Color="Transparent" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
</Rectangle>
دسترسی به منابع یک فایل DLL توسط StreamSource
تصور کنید شما یک فایل DLL ایجاد کردید که داخل آن چند فایل تصویری وجود دارد و میخواهید از فایل DLL و فایلهای داخل آن به عنوان یک منبع از تصاویر مورد نیاز در برنامه خود استفاده کنید. روش زیر به شما کمک میکنه به فایلهای درون فایل DLL دسترسی پیدا کرده و از آنها استفاده کنید.
// Find DLL file name.
var assemblyName =
AssemblyName.GetAssemblyName("C://AppPicture.DLL");
// Load DLL file and get file's name in the DLL file.
var assembly = Assembly.Load(assemblyName);
var namesOfResourcesInDllFile = assembly.GetManifestResourceNames();
// Read one of file in DLL file and put it to the bitmap image.
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = assembly.GetManifestResourceStream(namesOfResource sInDllFile[0]);
bitmapImage.EndInit();
// Use the picture.
image1.Source = bitmapImage;
کلاس assembly دو متد GetManifestResourceName و GetManifestResourceStream را فراهم میکند. اولی نام منابع (در مثال ما فایلهای تصویری) در یک اسمبلی را به صورت آرایه استخراج میکند و دومی با داشتن نام منبع، آن را به صورت یک stream از اسمبلی استخراج میکند.
نقل قول: 1001 نکته در WPF
سلام
ایجاد کرنومتر(Stop Watch) در WPF با استفاده از کلاس های
DispatcherTimer و Stopwatch
https://barnamenevis.org/showthread.p...095-stop-watch
نقل قول: 1001 نکته در WPF
نقل قول:
نوشته شده توسط
mmd2009
شاید سوال خیلی از بچه های انجمن باشه این سوال که چطور میشه با زدد کلیک بر روی هدر یک ستون Checkbox های زیر اون ستون همگی true یا False بشن
خب من چندتا راه حل پیدا کردم که یکی از اونا که به نظر خودم خیلی بهتر بود استفاده از یک Checkbox در هدر اون ستون هست که با تیک خوردنش همه Checkbox زیر اون ستون هم تیکشون true یا False بشن
کد Xaml اون به صورت زیر است :
<dg:DataGridTemplateColumn>
<dg:DataGridTemplateColumn.HeaderTemplate>
<DataTemplate x:Name="Checking">
<CheckBox x:Name="CheckBoxClickAll" Click="CheckBoxClickAll" Content="{Binding}" IsChecked="False" IsThreeState="False"/>
</DataTemplate>
</dg:DataGridTemplateColumn.HeaderTemplate>
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Width="14" VerticalAlignment="Center" IsChecked="{Binding Selecting, UpdateSourceTrigger=PropertyChanged}" x:Name="LocalColumnCheckbox" />
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
متد :
private void CheckBoxClickAll(object sender, RoutedEventArgs e)
{
var checkBox = e.OriginalSource as CheckBox;
if (checkBox != null && checkBox.Name == "CheckBoxClickAll")
{
if (checkBox.IsChecked.GetValueOrDefault(false))
{
//Checked
}
else
{
//UnChecked
}
}
}
موفق باشید
تو قسمتای checked و unchecked دقیقا چه کدی باید بنویسیم، چجوری به سلولای اون ستون دسترسی پیدا کنیم؟؟؟
نقل قول: 1001 نکته در WPF
پیدا کردن کل مسیر در TreeView
private void TreeView_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
FullPath = OldGetFullPath(e.OriginalSource as UIElement);
}
public String OldGetFullPath(UIElement source)
{
var st = "";
while ((source != null))
{
source = VisualTreeHelper.GetParent(source) as UIElement;
var container = source as TreeViewItem;
if (container != null)
{
st += container.Header + " / ";
}
}
return st;
}
نقل قول: 1001 نکته در WPF
بستن برنامه در wpf
private void Button_Click_2(object sender, RoutedEventArgs e)
{
//System.Environment.Exit(0);
// System.Diagnostics.Process.GetCurrentProcess().Kil l();
Application.Current.Shutdown();
}
باهر سه کد می توان برنامه را بست
نقل قول: 1001 نکته در WPF
اضافه نمودن tooltip درTaskbar Item:
<Window>
<Window.TaskbarItemInfo>
<TaskbarItemInfo Description=”Custom tooltip”/>
</Window.TaskbarItemInfo>
</Window>
و یا در code behind:
public MainWindow()
{
this.TaskbarItemInfo = new TaskbarItemInfo();
this.TaskbarItemInfo.Description = “Custom tooltip”;
}
نقل قول: 1001 نکته در WPF
اپلیکیشن شبیه گجت:
<Window x:Class=”GadgetWindow”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Height=”300” Width=”300”
AllowsTransparency=”True” WindowStyle=”None” Background=”Transparent”
MouseLeftButtonDown=”Window_MouseLeftButtonDown >
<Grid>
<Ellipse Fill=”Red” Opacity=”0.5” Margin=”20”>
<Ellipse.Effect>
<DropShadowEffect/>
</Ellipse.Effect>
</Ellipse>
<Button Margin=”100” Click=”Button_Click”>Close</Button>
</Grid>
</Window>
تو کد بیهایند:
using System.Windows;
using System.Windows.Input;
public partial class GadgetWindow : Window
{
public GadgetWindow()
{
InitializeComponent();
}
void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
void Button_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
نقل قول: 1001 نکته در WPF
JumpTasks:
<Application x:Class=”PhotoGallery.App”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
StartupUri=”MainWindow.xaml”>
<JumpList.JumpList>
<JumpList>
<JumpTask Title=”Magnifier”
Description=”Open the Windows Magnifier.”
ApplicationPath=”%WINDIR%\system32\magnify.exe />
<JumpTask Title=”Calculator”
Description=”Open the Windows Calculator.”
ApplicationPath=”%WINDIR%\system32\calc.exe”
IconResourcePath=”%WINDIR%\system32\calc.exe”/>
<JumpTask Title=”Notepad”
Description=”Open Notepad.”
ApplicationPath=”%WINDIR%\system32\notepad.exe
IconResourcePath=”%WINDIR%\system32\notepad.exe
WorkingDirectory=”%HOMEDRIVE%%HOMEPATH%”/>
<JumpTask Title=”Internet Explorer (No Add-Ons)”
Description=”Start without ActiveX controls or extensions.”
ApplicationPath=”%PROGRAMFILES%\Internet Explorer\iexplore.exe”
IconResourcePath=”%PROGRAMFILES%\Internet Explorer\iexplore.exe”
WorkingDirectory=”%HOMEDRIVE%%HOMEPATH%”
IconResourceIndex=”6” Arguments=”-extoff”/>
</JumpList>
</JumpList.JumpList>
</Application>
نقل قول: 1001 نکته در WPF
سلام
ممنون از پست خوبتون
یه سوال دارم اگه ممکنه جواب بدید
اگر بخوایم کاربر اجازه ی وارد کردن عدد نداشته باشه چیکار باید کرد؟
چه کدی بنویسم؟
ممنون
نقل قول: 1001 نکته در WPF
نقل قول:
نوشته شده توسط
kkk_kkk
سلام
ممنون از پست خوبتون
یه سوال دارم اگه ممکنه جواب بدید
اگر بخوایم کاربر اجازه ی وارد کردن عدد نداشته باشه چیکار باید کرد؟
چه کدی بنویسم؟
ممنون
سلام توی Keydown کد زیر رو بنویس
if (!(Convert.ToInt32(e.Key) < 34 || (Convert.ToInt32(e.Key) > 43 && Convert.ToInt32(e.Key) < 74) || Convert.ToInt32(e.Key) > 83)) e.Handled = true;
نقل قول: 1001 نکته در WPF
نقل قول:
نوشته شده توسط
alireza264
سلام توی Keydown کد زیر رو بنویس
if (!(Convert.ToInt32(e.Key) < 34 || (Convert.ToInt32(e.Key) > 43 && Convert.ToInt32(e.Key) < 74) || Convert.ToInt32(e.Key) > 83)) e.Handled = true;
سلام ببخشید اگه بخایم فقط حروف فارسی وارد بشه چی بنویسیم؟؟؟
نقل قول: 1001 نکته در WPF
نقل قول:
نوشته شده توسط
alireza264
سلام توی Keydown کد زیر رو بنویس
if (!(Convert.ToInt32(e.Key) < 34 || (Convert.ToInt32(e.Key) > 43 && Convert.ToInt32(e.Key) < 74) || Convert.ToInt32(e.Key) > 83)) e.Handled = true;
اگه بخوایم فقط عدد وارد بشه چی؟؟؟؟؟؟؟
یا فقط حروف انگلیسی؟؟؟