mouse move event command http://www.codeproject.com/Tips/478643/Mouse-Event-Commands-for-MVVM
Showing posts with label wpf. Show all posts
Showing posts with label wpf. Show all posts
C# Обработываем событие на Hotkey в приложениях WPF
Способ 1
Способ 2
public MainWindow() { InitializeComponent(); AddHandler(Keyboard.KeyDownEvent, (KeyEventHandler)HandleKeyDownEvent); } private void HandleKeyDownEvent(object sender, KeyEventArgs e) { if (e.Key == Key.Tab && (Keyboard.Modifiers & (ModifierKeys.Control | ModifierKeys.Shift)) == (ModifierKeys.Control | ModifierKeys.Shift)) { MessageBox.Show("CTRL + SHIFT + TAB trapped"); } if (e.Key == Key.Tab && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { MessageBox.Show("CTRL + TAB trapped"); } }
Способ 2
<Window x:Class="WPFHotkey.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WPFHotkey" Title="MainWindow" Height="350" Width="525"> <Window.CommandBindings> <CommandBinding Command="local:MainWindow.Some_Command" Executed="Some_Executed"/> </Window.CommandBindings> <Window.InputBindings> <KeyBinding Key="F4" Modifiers="ALT" Command="local:MainWindow.Some_Command"/> </Window.InputBindings> <Grid> </Grid> </Window>
using System.Windows; using System.Windows.Input; namespace WPFHotkey { public partial class MainWindow : Window { public static RoutedCommand Some_Command = new RoutedCommand(); private void Some_Executed(object sender, ExecutedRoutedEventArgs e) { MessageBox.Show("Hi!"); } public MainWindow() { InitializeComponent(); } } }
C# How to change UI control from other thread (WinForms and WPF)
WinForms:
public delegate void updateTextBoxDelegate(String textBoxString); public updateTextBoxDelegate updateTextBox; void updateTextBox1(string str ) { textBox1.Text = str1; } void display( string strItem ) { Form1.Invoke( Form1.updateTextBox, strItem ); }
WPF:
tempWindow.Dispatcher.BeginInvoke(new Action(delegate() { tempWindow.ChangeControlMethod(); }));
C# Локализация Windows 8 приложений
Введение
Шаблоны Windows Phone 8 проектов теперь включают в себя поддержку локализаций приложений. Что такое локализация? Когда вы разрабатываете приложение Windows Phone app, часто вам необходимо это делать сразу для нескольких регионов и соответственно нескольких языков, простыми словами вам необходимо перевести интерфейс или какую то графическую часть.
Давайте создадим Windows Phone 8 приложение и на примере посмотрим как локализовать его.
Первым делом нам вам необходимо выбрать "Windows Phone OS 8.0" платформу когда создаете свое приложение.
Step 1: Создадим новое Windows Phone 8 приложение с целевой платформой версии 8.0.
Как я говорил локализация доступна для восьмой версии платформы; она не поддерживается в версии 7.1, вы можете увидеть различия между версиями на картинке ниже, когда вы создаете Windows Phone 8.0 приложение файл ресурсов находится в папке "Resources" для каждой поддерживаемой локализации и создается класс "LocalizedStrings", также используется привязка с помощью XAML.
По умолчанию запись, относящаяся к классу помощнику "LocalizedStrings" создается в файле App.xaml.
Шаг 2: Теперь давайте привяжем заголовок приложения к свойству из global resource.
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle}"
Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="{Binding Path=LocalizedResources.MainPageTitle}" Margin="9,-7,0,0"
Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
Посмотрим на функцию InitializeLanguage():
Шаблоны Windows Phone 8 проектов теперь включают в себя поддержку локализаций приложений. Что такое локализация? Когда вы разрабатываете приложение Windows Phone app, часто вам необходимо это делать сразу для нескольких регионов и соответственно нескольких языков, простыми словами вам необходимо перевести интерфейс или какую то графическую часть.
Давайте создадим Windows Phone 8 приложение и на примере посмотрим как локализовать его.
Первым делом нам вам необходимо выбрать "Windows Phone OS 8.0" платформу когда создаете свое приложение.
Step 1: Создадим новое Windows Phone 8 приложение с целевой платформой версии 8.0.
Как я говорил локализация доступна для восьмой версии платформы; она не поддерживается в версии 7.1, вы можете увидеть различия между версиями на картинке ниже, когда вы создаете Windows Phone 8.0 приложение файл ресурсов находится в папке "Resources" для каждой поддерживаемой локализации и создается класс "LocalizedStrings", также используется привязка с помощью XAML.
По умолчанию запись, относящаяся к классу помощнику "LocalizedStrings" создается в файле App.xaml.
Шаг 2: Теперь давайте привяжем заголовок приложения к свойству из global resource.
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle}"
Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="{Binding Path=LocalizedResources.MainPageTitle}" Margin="9,-7,0,0"
Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
Посмотрим на функцию InitializeLanguage():
Шаг 3: Добавим определенную локализацию приложения.
Зайдите в свойства проекта и там вы можете выбрать язык который желаете использовать.
После добавления новых языков создадутся соответствующие файлы ресурсов и добавятся в папку Resources.
Все файлы ресурсов содержат все детали локализации, чтобы их посмотреть нам не обязательно запускать приложение.
Когда вы откроете файл Resources.resx вы увидите ApplicationTitle на разных языках.
Step 4: Протестируем наше приложением просто запустив эмулятор и мы увидим ApplicationTitle на главной странице по умолчанию.
Теперь давайте протестируем нашу новую локализацию.
Для изменения языка используйте следующий порядок действий.
Шаг 1: Нажмите кнопку Start, потом нажмите на иконку стрелку.
Шаг 2: Выберите настройки из списка и нажмите на region & language.
Шаг 3: Выберите язык который вы добавили. Мы добавили немецкий так что выберем его.
Шаг 4: Нажмите чтобы подтвердить изменения и перезагрузите телефон.
Эмулятор изменит настройки и вернет стартовое окно.
Теперь запустите своё приложение и вы увидите переведенный UI.
Эмулятор изменит настройки и вернет стартовое окно.
Теперь запустите своё приложение и вы увидите переведенный UI.
c# scroll panel with picturebox by dragging mouse
private Point _StartPoint;
void pictureBox1_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left)
_StartPoint = e.Location;
}
void pictureBox1_MouseMove(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
Point changePoint = new Point(e.Location.X - _StartPoint.X,
e.Location.Y - _StartPoint.Y);
panel1.AutoScrollPosition = new Point(-panel1.AutoScrollPosition.X - changePoint.X,
-panel1.AutoScrollPosition.Y - changePoint.Y);
}
}
c# create image with transparent background / c# Создание изображения с прозрачным бэкграундом
1)Use Bitmap.MakeTransparent()
2)
Bitmap b = new Bitmap(ImageWithNonTransparentBackGround);
b.MakeTransparent(Color.Trasparent);
2)
var image = new Bitmap(135, 135, PixelFormat.Format32bppArgb);
using (var g = Graphics.FromImage(image)) {
g.Clear(Color.Transparent);
g.DrawLine(Pens.Red, 0, 0, 135, 135);
}
textblock wrap text font
Отличный мануал про это и всё другое http://msdn.microsoft.com/en-us/library/cc189010(v=vs.95).aspx
C# WPF Control with transparent background
//Set background color mycontrol.Background = Brushes.Green; //Not transparent mycontrol.Opacity=1; //Half transparent mycontrol.Opacity=0.5;
How to add a CheckBox to a Menu Item in WPF
xaml
c#
- <MenuItem IsCheckable="True" x:Name="_showSolutionExplorer" Header="Solution Explorer" Click="_showContent_Click"></MenuItem>
c#
- private void _showContent_Click(object sender, RoutedEventArgs e)
- {
- If ((sender as MenuItem).IsChecked)
- MessageBox.Show("MenuItem is checked");
- else
- MessageBox.Show("MenuItem is not checked");
- }
c# WPF change foreground
- myobject.Foreground = Brushes.Black;
OR
- myobject.Foreground = new SolidColorBrush(Colors.Green);
c# wpf treeView return list of all nodes / Рекурсивный перебор элементов
- private void PrintRecursive(TreeNode treeNode)
- {
- // Print the node.
- System.Diagnostics.Debug.WriteLine(treeNode.Text);
- MessageBox.Show(treeNode.Text);
- // Print each node recursively.
- foreach (TreeNode tn in treeNode.Nodes)
- {
- PrintRecursive(tn);
- }
- }
- // Call the procedure using the TreeView.
- private void CallRecursive(TreeView treeView)
- {
- // Print each node recursively.
- TreeNodeCollection nodes = treeView.Nodes;
- foreach (TreeNode n in nodes)
- {
- PrintRecursive(n);
- }
- }
Timer in WPF
- private void Window_Loaded(object sender, RoutedEventArgs e)
- {
- DispatcherTimer dispatcherTimer = new DispatcherTimer();
- dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
- dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
- dispatcherTimer.Start();
- }
- private void dispatcherTimer_Tick(object sender, EventArgs e)
- {
- listBox1.Items.Add(DateTime.Now.Hour.ToString() + ":" +
- DateTime.Now.Second.ToString());
- CommandManager.InvalidateRequerySuggested();
- listBox1.Items.MoveCurrentToLast();
- listBox1.SelectedItem = listBox1.Items.CurrentItem;
- listBox1.ScrollIntoView(listBox1.Items.CurrentItem);
- }
Multi-coloured code for a blog http://aivolkov.ru/online-syntax-highlighter/
c# WPF Аналог Delphi Application.ProcessMessages и WinForms Application.DoEvents
- private void DoEvents()
- {
- Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate { }));
- }
- private void btnDel_Click(object sender, RoutedEventArgs e)
- {
- popupLoad.IsOpen = true;
- DoEvents();
- if (eDelRecord != null)
- eDelRecord(this, EventArgs.Empty);
- popupLoad.IsOpen = false;
- }
c# WPF oval button
- <ControlTemplate x:Key="myButton" TargetType="Button">
- <Grid Width="{TemplateBinding ActualWidth}"
- Height="{TemplateBinding ActualHeight}" Background="#00FFFFFF">
- <Ellipse Name="Circle" StrokeThickness="1">
- <Ellipse.Fill>
- <LinearGradientBrush EndPoint="2.2,0" StartPoint="0,0">
- <LinearGradientBrush.GradientStops>
- <GradientStop Offset="0" Color="LightGray" />
- <GradientStop Offset="0.3" Color="Gray" />
- </LinearGradientBrush.GradientStops>
- </LinearGradientBrush>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter x:Name="content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- <ControlTemplate.Triggers>
- <Trigger Property="UIElement.IsEnabled" Value="false">
- <Setter Property="Shape.Fill" TargetName="Circle">
- <Setter.Value>
- <LinearGradientBrush EndPoint="2.2,0" StartPoint="0,0">
- <LinearGradientBrush.GradientStops>
- <GradientStop Offset="0" Color="#FFFFFFFF" />
- <GradientStop Offset="0.5" Color="#FFEBEEF5" />
- <GradientStop Offset="0.5" Color="#FFD8DDEB" />
- <GradientStop Offset="1" Color="#FFDFE2F0" />
- </LinearGradientBrush.GradientStops>
- </LinearGradientBrush>
- </Setter.Value>
- </Setter>
- </Trigger>
- <Trigger Property="UIElement.IsMouseOver" Value="true">
- <Setter Property="Shape.Fill" TargetName="Circle">
- <Setter.Value>
- <LinearGradientBrush EndPoint="2.2,0" StartPoint="0,0">
- <LinearGradientBrush.GradientStops>
- <GradientStop Offset="0" Color="#FFFFFFFF" />
- <GradientStop Offset="0.1" Color="#FFDFEDF9" />
- <GradientStop Offset="0.47" Color="#FF3086E1" />
- <GradientStop Offset="0.47" Color="#FF003B91" />
- <GradientStop Offset="0.7" Color="#FF1793EF" />
- <GradientStop Offset="0.85" Color="#FF5AD4FF" />
- <GradientStop Offset="0.95" Color="#FFBDFFFF" />
- <GradientStop Offset="1" Color="#FFFFFFFF" />
- </LinearGradientBrush.GradientStops>
- </LinearGradientBrush>
- </Setter.Value>
- </Setter>
- </Trigger>
- <Trigger Property="ButtonBase.IsPressed" Value="True">
- <Setter Property="Shape.Fill" TargetName="Circle">
- <Setter.Value>
- <LinearGradientBrush EndPoint="2.2,0" StartPoint="0,0">
- <LinearGradientBrush.GradientStops>
- <GradientStop Offset="0" Color="#FFC0D2F5" />
- <GradientStop Offset="0.47" Color="#FF5E7A9C" />
- <GradientStop Offset="0.47" Color="#FF00062D" />
- <GradientStop Offset="0.7" Color="#FF005F9F" />
- <GradientStop Offset="0.85" Color="#FF1FA4E2" />
- <GradientStop Offset="0.95" Color="#FF61DAFF" />
- <GradientStop Offset="1" Color="#FF48CFFF" />
- </LinearGradientBrush.GradientStops>
- </LinearGradientBrush>
- </Setter.Value>
- </Setter>
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
Result:
No action
IsMouseOver
IsPressed
Subscribe to:
Posts (Atom)