Блог Ерёмина Андрея обо всём на свете…

Posts tagged ‘Windows Presentation Foundation’

УМК Менеджер


По прогнозам специалистов, в ближайшие 5 лет более половины всех студентов в развитых странах будут учиться дистанционно, получая при этом вполне реальное и качественное образование с настоящим дипломом о полученной специальности.

Учебно–методические материалы студенты при дистанционной форме обучения получают на съёмных носителях (чаще всего на CD-дисках) или через Интернет. В электронном виде предоставляется доступ к богатейшим учебным и научным ресурсам, обеспечивается возможность самостоятельно выбирать время и место учебы. При этом Интернет служит как средством доставки учебных материалов, так и инструментом общения студента с преподавателем.

В ходе обучения студент получает доступ к тестам, учебным программам, полнотекстовым учебникам и лекциям. Эти материалы могут быть использованы в любое время.

image

УМК Менеджер— комплекс программных средств, состоящий из Windows-приложений: программа для работы с учебно-методическими комплексами (умк менеджер), помощник по созданию и записи дисков с ЭУМК (disk creator) и визуальная программа-оболочка для компакт-дисков (umk shell).

Программа написана на языках Visual Basic .NET и C#.NET с использованием .NET Framework 3.5 SP1 и технологии WPF (Windows presentation foundation).

Функции программы:

  • создание структуры УМК целого университета
  • помощь в разработке новых УМК (используются шаблоны для создания файлов УМК)
  • ведение статистики по каждому подразделению или кафедре
  • поиск необходимой информации в уже имеющихся УМК
  • создание структуры дисков с ЭУМК
  • запись дисков с ЭУМК
  • предоставление содержимого ЭУМК пользователю

Скачать программу можно здесь. (~ 20 Мб)

Glass-прозрачность в WPF


Как сделать Glass-прозрачность в WPF-приложении?

1) Разместите следующий код в файле класса окна к которому вы хотите добавить glass:

[StructLayout(LayoutKind.Sequential)]
public struct MARGINS
{
    public int cxLeftWidth;      // width of left border that retains its size
    public int cxRightWidth;     // width of right border that retains its size
    public int cyTopHeight;      // height of top border that retains its size
    public int cyBottomHeight;   // height of bottom border that retains its size
};

[DllImport("DwmApi.dll")]
public static extern int DwmExtendFrameIntoClientArea(
    IntPtr hwnd,
    ref MARGINS pMarInset);

2)свойство окна Background сделайте Transparent и добавьте следующий код к событию Loaded:

try
   {
      // Obtain the window handle for WPF application
      IntPtr mainWindowPtr = new WindowInteropHelper(this).Handle;
      HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr);
      mainWindowSrc.CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0);

      // Get System Dpi
      System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(mainWindowPtr);
      float DesktopDpiX = desktop.DpiX;
      float DesktopDpiY = desktop.DpiY;

      // Set Margins
      NonClientRegionAPI.MARGINS margins = new NonClientRegionAPI.MARGINS();

      // Extend glass frame into client area
      // Note that the default desktop Dpi is 96dpi. The  margins are
      // adjusted for the system Dpi.
      margins.cxLeftWidth = Convert.ToInt32(5 * (DesktopDpiX / 96));
      margins.cxRightWidth = Convert.ToInt32(5 * (DesktopDpiX / 96));
      margins.cyTopHeight = Convert.ToInt32(((int)topBar.ActualHeight + 5) * (DesktopDpiX / 96));
      margins.cyBottomHeight = Convert.ToInt32(5 * (DesktopDpiX / 96));      int hr = NonClientRegionAPI.DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins);
      //
      if (hr < 0)
      {
         //DwmExtendFrameIntoClientArea Failed
      }
   }
   // If not Vista, paint background white.
   catch (DllNotFoundException)
   {
      Application.Current.MainWindow.Background = Brushes.White;
   }

3) вот и всё.

image

Technorati Теги: ,,,,,

Облако меток