23 July 2007

WPF Moving Controls in XYZ

The moment to create something like a game as NeoPets in WPF is coming, today I have made improvements using controls, here I show you how to add movement to the controls on runtime, I have add moving using the mouse and using the keyboard, download the source here
To do that, in the xaml file add to the button:

button keydown="OnKey" previewmousemove="OnMove"

And in the .cs add the next methods:

public void OnMove(object o, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
b = (Button)o;
SetZ();
Canvas.SetZIndex(b, 99);
b.Margin = new Thickness(e.MouseDevice.GetPosition(null).X - b.Width / 2, e.MouseDevice.GetPosition(null).Y - b.Height/2, b.Margin.Right, b.Margin.Bottom);
}
}


and for using the keyboard:

public void OnKey(object o, KeyEventArgs e)
{
int delta = 20;
b = (Button)o;
SetZ();
Canvas.SetZIndex(b, 99);
switch (e.Key)
{
case Key.W:
b.Margin = new Thickness(b.Margin.Left, b.Margin.Top - delta, b.Margin.Right, b.Margin.Bottom);
break;
case Key.S:
b.Margin = new Thickness(b.Margin.Left, b.Margin.Top + delta, b.Margin.Right, b.Margin.Bottom);
break;
case Key.A:
b.Margin = new Thickness(b.Margin.Left - delta, b.Margin.Top, b.Margin.Right, b.Margin.Bottom);
break;
case Key.D:
b.Margin = new Thickness(b.Margin.Left + delta, b.Margin.Top, b.Margin.Right, b.Margin.Bottom);
break;
default:
break;
}
}


Apparently is easy, the matter about all of this, is that there's only few docs, so I hope you find this useful and encourage you to improve your apps (uis).

17 July 2007

Focusing (graphically talking) controls


Few days ago my nephew show me a web called neopets, and there I watched plenty of mini flash games, I was thinking on the possibilities on WPF and I decided to start playing with the effects on runtime, here I show you how to change on runtime the focus of a control:
Download sample here



using System.Windows.Media.Effects;
using System.Windows.Threading;
using System.Windows.Input;

...


BlurBitmapEffect blur;
Button b;

System.Timers.Timer t_1;
public void AutoFocus(object o, EventArgs e)
{
b = (Button)o;
blur = new BlurBitmapEffect();
b.BitmapEffect = blur;
blur.Radius=5;
t_1 = new System.Timers.Timer(1);
t_1.Elapsed +=new System.Timers.ElapsedEventHandler(OnTime);
t_1.Start();
}

...


void OnTime(object sender, System.Timers.ElapsedEventArgs e)
{
this.Dispatcher.Invoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate
{
if (blur.Radius > 0)
blur.Radius--;
else
t_1.Stop();
return null;
}), null);
}

...


public void AutoDifuse(object o, EventArgs e)
{
BlurBitmapEffect blur = new BlurBitmapEffect();
blur.Radius = 5;
((Button)o).BitmapEffect = blur;
}

...



The code is easy to understand, the only matter is the strange way to use a Timer, because if you try to ommit the Dispatcher.Invoke you will have threading problems. The rest I think is easy to understand. Tomorrow I'll show you how to move controls on runtime


13 July 2007

Solved the GridView Header

Just only an hour ago, I have solved the hard matter to customize the header, due to the matters with the xaml code inside an article here is the link to my comment with the code

The codeproject comment with the code is here

I hope you find it useful or a year of this decade (when you decide to use WPF)

22 June 2007

La nueva WPF GridView

Buenos Días, ayer por la noche fue publicado en El Guille mi primer artículo sobre C#: La nueva WPF GridView, Como personalizarla y añadir múltiples orígenes de datos (primera parte), lo teneis recien salido del horno aquí :

Espero que sea de utilidad sino ahora dentro de unos meses, Saludos Juanpa

19 June 2007

The new WPF GridView customized 1 of 3

Today I have published the first article of GridView and DataBinding, I hope you find it interesting, read the article . Read the post before to know what has inside.

Until the next article, bye.

15 June 2007

The GridView (WPF)

Today I was in the Step 3 of codeproject to upload my new article about GridView and when I click on Next it crush :(. All my translated article to the net bin. So tonight I will upload it again, (I'll copy the html), for the spanish readers here is the .pdf file of my article send me an email to receive a .pdf version

This is the first chapter of two, it contains:

  • Creating a GridView
  • Binding XML .net 2.0
  • Binding XML with XAML only (static)
  • Binding XML with XAML and C# (dynamic)
  • Binding SQL Server Data.
  • Binding Access Data.
  • Binding MySQL Data.
  • Customize Header.
  • Customize Background.
  • Customize Rows.

In the next chapter I will add binding array, editing cells, grouping and more customization.


03 June 2007

New article and updates

Good Night everyone, people sometimes makes more pressure than the boss :). I have just published the new article RibbonForm, RibbonRoundButton and RibbonFastMenu.

I have updated the RibbonMenuButton with Solved Repaint ChangingSize, solved excesive CPU consuming. Added KeepPress and IsPress functionaliy, I hope CodeProject post it on Monday.

Thank you very much for the votings and comments . Now I have to rest a bit.