05 November 2007

.net Additive versions

This morning I've seen a poster and a diagram that shows the .net additive structure

Now I undertand better what is 3.0 and 3.5, here is a link to a great poster of the namespaces. Always is interesting having diagrams like that, overall when people ask us and we are a bit lost.

29 October 2007

Visor de riesgo para Facturaplus

Buenas tardes, hoy toca en español, ya que el artículo va sobre facturaplus, tengo el 50% del trabajo listo, es lo que llamo visor de facturaplus, que permite ver en tiempo real (desarrollado en .net 2.0):

1.- Pendiente de Facturas, albaranes por cliente,vendedor.
2.- Ver estado de documentos sin importar la serie, filtrando por número.
3.- Buscar las facturas por importe.
4.- Permite tener de golpe para analizar, todos los clientes de un vendedor.

En la segunda parte es donde se incluyen los informes Crystal Reports:
1.- Pendiente de cobros por vendedor
2.- Ventas por año (comparativo)
3.- Comisiones (detalle de facturas)
4.- Histórico de artículos por cliente y vendedor

25 October 2007

AI has simmetry?

Hi everyone, Today I was playing with an article of Sacha Barber about "Sheeps and Wolves" or "Missioners and Cannibals" here and well might be coincidence might not, but graphically the algoritm makes me the next matrix:

Does anyone know why is simmetrical? I take the steps from the Barber's article and well it's a curious picture.

18 October 2007

Spry - Customize the MenuBar

After being dissappear for few months (making my commercial web, commercial apps...) being designing I have seen that in the Dreamweaver CS3 there's a interesting AJAX framework called SPRY, so here I saw an example and how to customize with images it:


How to:
1.- First of all add a MenuBar from the Insert toolbox-Spry

2.- After you add the MenuBar in the webpage, I remove the text and assign for each link a custom id:

3.- And now in a css file (linked to this), I customize simply to this:

Might be for dummies, but sometimes trying things we do it by the complex way.

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;
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;
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);
case Key.S:
b.Margin = new Thickness(b.Margin.Left, b.Margin.Top + delta, b.Margin.Right, b.Margin.Bottom);
case Key.A:
b.Margin = new Thickness(b.Margin.Left - delta, b.Margin.Top, b.Margin.Right, b.Margin.Bottom);
case Key.D:
b.Margin = new Thickness(b.Margin.Left + delta, b.Margin.Top, b.Margin.Right, b.Margin.Bottom);

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;
t_1 = new System.Timers.Timer(1);
t_1.Elapsed +=new System.Timers.ElapsedEventHandler(OnTime);


void OnTime(object sender, System.Timers.ElapsedEventArgs e)
this.Dispatcher.Invoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate
if (blur.Radius > 0)
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.

30 May 2007

Tutorial: Custom XAML Button - First Step

Today I have practically finished my first button in Orcas, there are few things to get customed, and I'll try to explain as for a dummy. Let's start from what you need:

1.- Download Microsoft Expression Design : This is needed to learn a bit of XAML figure structure and design easily , (at the moment I'm solving a problem with a domain when I finished it I'll put all my code files, if you want the source, email me: mailto:juanpablogc@gmail.com , subject: Overrider_300507)

Paint something that you would like to have in a button, (I take a similar look and feel as my RibbonRoundButton).

After you have finished it, you will have to export it to a xaml file. The structure of an xaml (the interesting part for us) is for instance:


(I have problems to add (<) in the blog)

You can imagine the Canvas as a Drawing Table where you layout the components and inside you can add everything you want as Ellipses, Paths... (This substitutes to the OnPaint method which disappears in .net 3.5)

2.- After you have get customed a bit with designer, and exported the file, you must take advice that every component in designer has a name like:


you must remove the part of x:Name... because a control in Orcas can have only one name.
and to work fine in Orcas, and change Canvas to Grid.

Tomorrow I'll show you how to implement it in a Control Button, as a preview take a look to this screenshot:

29 May 2007

Hello World Orcas

Welcome everyone, today I decided to install Orcas in my job computer (xp) and this afternoon in my own computer(vista). Well with xp any matter I installed Visual c# express Orcas and compiled without problem. But this afternoon with Vista, ouch.

If you have any problem post me a comment, to tell you how to solve it. And now... Hello World Orcas:

1.- Create a new WPF application

1.1- Go to Project : HelloWorld properties and change the next:

2.- Add a button on the window

3.- Let's create the event (I supposed they will put a design mode early), to do that, go to the window.xaml.cs (yeah we will have to get customed):

4.- And now add the following code:

public partial class Window1 : Window
public Window1()
button1.Click += new RoutedEventHandler(button1_Click);
void button1_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Hello World");

Run and you will have your first VISTA WPF .net 3.5 C# first app, Congratulations :)

28 May 2007

Preparing RibbonFastMenu

Good Afternoon everyone

I'm preparing the RibbonFastMenu, with
and RibbonContextMenu,
as you can see in the image, I also included the Transparent Region to place the RibbonForm in the correct place. The constructor will have the
location to place it well.

When you click on the Arrow Region of a button with SplitRegion, you open the RibbonContextMenu (second image). I solved some matters with the round corners and the shadow which was difficult because I haven't found any help about this matter in the Internet but at the end I get it.

Now I have to finish the correct width of the painting of the
, and the Gradients of the RibbonFastMenu.
After that I'll mix with the RibbonForm.
Another thing I have add to the
is the Keep Pressed option, that makes the chance to keep it pressed and send to the Parent Control (Container) to the other RibbonMenuButtons to left this Status. (It will be great to simulate tabcontrols with RibbonMenuButtons or any multichoice selection.

24 May 2007

Preparing the RibbonForm

Good night again, tonight I present a preview of the RibbonForm, as you can see in the image, it's like OF2007, has the:

  • RibbonCommandButtons (Minimize, Maximize and Close).

  • Method to change Hue, Sat and Brightness

  • Secondary title with armony ForeColor

  • I'm including the RibbonRoundButton (it looks great)

  • I have to make all the methods to resize and move the RibbonForm.

I'm finishing the RibbonFastMenu with the RibbonContextMenu. I think this weekend or next I'll publish the article.

The down count is coming to integrate and create a great library. Thanks everyone

19 May 2007

The RibbonRoundButton

Good Night, I have finished now the RibbonRoundButton, this is like the WM player, Of2007 and VSTA round buttons, and includes fading between colors. I designed with .net 2.0, I think it's a eye candy and it works fine.

I'll publish it in codeproject with the RibbonForm and the Updated RibbonMenuButton with the InfoForm and ContextMenuStrip.

It was difficult to add a shadow under the circle region but at the end I think it finished well.

Another matters with that is the stranges halos that has inside and over, in a few days you will have all the code.

11 May 2007

About RibbonMenuButton

First of all, I have decided to put all my ControlLibrary free for everybody and Thanks for all the opinions.

Due to my ControlLibrary is getting huge, I thought explain it as I finished the parts, and then publish it as article in codeproject. Here is a screenshot of the RibbonMenuButtonControlTest.

The interesting properties I created are:
  • Arrow: ToRight or ToDown.
  • ColorBase,ColorOn,ColorPress (not more back images, more customizable).
  • GroupPos: Left,Center,Right,Top,Bottom.
  • ImageLocation : L,R,C,T,B.
  • ImageOffset (Autoscales).
  • Radius (of corners button).
  • ShowBase: to show base or not.
  • SplitButton: to convert in multiple click event.
  • Split Distance : to set the size of the contextmenu button part.
  • FadingSpeed: how fast is the transtition from base to oncolor and back.

I have to add the final touches and if you want to add another functionality, tell me, I'll be grateful to know your opinion and I'll try to add it.

If you want to learn with this controls, I recommend you to take a look to:

  • this.Region: thats a good way to avoid matters of transparency.
  • LinearGradient with multiple colors, that makes easy the gradients.
  • MeasureString : thats a good method to position the text (Beacuse you have to take away the base.OnPaint -> you have to do ALL, including write the text).
  • Transform Colors Method including Alpha opacity.
  • The DrawArc Method: As you can see with the radius you can make smooth corners
  • OnMouseUp: Here you can see what happens when the is SplitButton is activated.

Tomorrow or next, you will see the fantastic RibbonRoundButton. (Another thing, I'm Spanish and I want to improve my English. Could you tell me my faults in the articles? Thank's)