public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            Border border = GetTemplateChild("TileItemBorder") as Border;
            if (border != null)
            {
                border.MouseEnter += (s, e) =>
                {
                    VisualStateManager.GoToState(this, "MouseEnter", true);
                };

                border.MouseLeave += (s, e) =>
                {
                    VisualStateManager.GoToState(this, "MouseLeave", true);
                };

                border.MouseLeftButtonDown += (s, e) => 
                {
                    FantasyTileItemEventArgs<FantasyTileItem> args = new FantasyTileItemEventArgs<FantasyTileItem>(this);
                    args.Title = this.Title;
                    args.Description = this.Description;
                    args.ImageUri = this.ImageUri;
                    args.NavigationUri = this.NavigationUri;

                    if (Click != null)
                    {
                        Click(this, args);
                    }
                };
            }
        }
 private void OnClick(Object sender, FantasyTileItemEventArgs<FantasyTileItem> e)
 {
     if (this.NavigationUri != null)
     {
         NavigationManager.Navigate(this.NavigationUri);
     }
 }