• Авторизация


Очередная непонятка в WPF 28-11-2007 21:37 к комментариям - к полной версии - понравилось!


Необходимо было прицепить дополнительные данные к MenuItem, я решил создать потомка MenuItem с дополнительными свойствами... Очень удивлён что этот новый класс приводит к изменению внешнего вида разделителя в контекстном меню. Причём в оконнном меню всё пучком... Вот код для воспроизведения глюка:
    1 using System;
    2 using System.Collections.Generic;
    3 using System.Windows;
    4 using System.Windows.Controls;
    5 
    6 public class MyMenuItem: MenuItem
    7 {
    8     private static MenuItem setHeader(MenuItem i, object h)
    9     {
   10         i.Header = h;
   11         return i;
   12     }
   13 
   14     private static List<Control> createItems()
   15     {
   16         List<Control> list = new List<Control>();
   17         list.Add(setHeader(new MenuItem(), "MenuItem 1"));
   18         list.Add(new Separator());
   19         list.Add(setHeader(new MenuItem(), "MenuItem 2"));
   20         list.Add(new Separator());
   21         list.Add(setHeader(new MyMenuItem(), "MyMenuItem"));
   22         list.Add(new Separator());
   23         list.Add(setHeader(new MenuItem(), "MenuItem 3"));
   24         list.Add(new Separator());
   25         list.Add(setHeader(new MenuItem(), "MenuItem 4"));
   26         return list;
   27     }    
   28 
   29     [STAThread]
   30     public static void Main()
   31     {
   32         Window w = new Window();
   33         StackPanel sp = new StackPanel();
   34         TextBlock tb = new TextBlock();
   35         tb.Text = "Compare Separator before 'MyMenuItem' in MainMenu and ContextMenu...";
   36         Menu m = new Menu();
   37         sp.Children.Add(m);
   38         sp.Children.Add(tb);
   39         w.Content = sp;
   40         MenuItem mi = setHeader(new MenuItem(),"MainMenu");
   41         mi.ItemsSource = createItems();
   42         m.Items.Add(mi);
   43 
   44         ContextMenu cm = new ContextMenu();
   45         cm.ItemsSource = createItems();
   46         w.ContextMenu = cm;
   47 
   48         (new Application()).Run(w);
   49     }
   50 }


Вот скриншотик:
[392x301]
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Очередная непонятка в WPF | dimzon541 - Поток не замутненного разумом сознания... | Лента друзей dimzon541 / Полная версия Добавить в друзья Страницы: раньше»