コード例 #1
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Создание объекта BitmapSource из стандартного дескриптора изображения
            /// </summary>
            /// <param name="h_bitmap">Дескриптор изображения</param>
            /// <param name="width">Требуемая ширина изображения</param>
            /// <param name="height">Требуемая высота изображения</param>
            /// <returns>Объект BitmapSource</returns>
            //---------------------------------------------------------------------------------------------------------
            private static BitmapSource CreateFromHBitmap(IntPtr h_bitmap, Int32 width, Int32 height)
            {
                var result = Imaging.CreateBitmapSourceFromHBitmap(h_bitmap, IntPtr.Zero,
                                                                   Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(width, height));

                XNative.DeleteObject(h_bitmap);

                return(result);
            }
コード例 #2
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Создание объекта BitmapSource из стандартного дескриптора изображения
            /// </summary>
            /// <param name="h_bitmap">Дескриптор изображения</param>
            /// <returns>Объект BitmapSource</returns>
            //---------------------------------------------------------------------------------------------------------
            private static BitmapSource CreateFromHBitmap(IntPtr h_bitmap)
            {
                var result = Imaging.CreateBitmapSourceFromHBitmap(h_bitmap, IntPtr.Zero,
                                                                   Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

                XNative.DeleteObject(h_bitmap);

                return(result);
            }
コード例 #3
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Конвертация объекта <see cref="Bitmap"/> в объект WPF <see cref="System.Windows.Media.Imaging.BitmapSource"/>.
            /// </summary>
            /// <remarks>
            /// Использует GDI для выполнения преобразования
            /// </remarks>
            /// <param name="source">Источник изображения</param>
            /// <returns>Объект BitmapSource</returns>
            //---------------------------------------------------------------------------------------------------------
            public static System.Windows.Media.Imaging.BitmapSource ToBitmapSource(this Bitmap source)
            {
                var h_bitmap = source.GetHbitmap();
                var result   = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(h_bitmap, IntPtr.Zero,
                                                                                            System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());

                XNative.DeleteObject(h_bitmap);

                return(result);
            }
コード例 #4
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Постоянная информация о перетаскивания
            /// </summary>
            /// <param name="sender">Источник события</param>
            /// <param name="args">Аргументы события</param>
            //---------------------------------------------------------------------------------------------------------
            private void OnTreeView_GiveFeedback(Object sender, GiveFeedbackEventArgs args)
            {
                Size popup_size = new Size(mPopupHand.ActualWidth, mPopupHand.ActualHeight);

                Win32Point mouse_pos = new Win32Point();

                XNative.GetCursorPos(ref mouse_pos);
                Point cursopr_pos = new Point(mouse_pos.X, mouse_pos.Y);

                mPopupHand.PlacementRectangle = new Rect(cursopr_pos, popup_size);
            }
コード例 #5
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Получение параметров представления Direct3D9
            /// </summary>
            /// <returns>Параметры представления Direct3D9</returns>
            //---------------------------------------------------------------------------------------------------------
            public static Direct3D9.PresentParameters GetPresentParameters()
            {
                var present_params = new Direct3D9.PresentParameters();

                present_params.Windowed             = true;
                present_params.SwapEffect           = Direct3D9.SwapEffect.Discard;
                present_params.DeviceWindowHandle   = XNative.GetDesktopWindow();
                present_params.PresentationInterval = Direct3D9.PresentInterval.Default;

                return(present_params);
            }
コード例 #6
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Получение иконки файла связанного с типом файла
            /// </summary>
            /// <param name="file_name">Имя файла</param>
            /// <returns>Изображение</returns>
            //---------------------------------------------------------------------------------------------------------
            public static BitmapSource GetIconFromFileTypeFromShell(String file_name)
            {
                IntPtr icon_small = XNative.SHGetFileInfo(file_name, 0, ref XNative.ShellFileInfoDefault,
                                                          (UInt32)Marshal.SizeOf(XNative.ShellFileInfoDefault), XNative.SHGFI_ICON | XNative.SHGFI_LARGEICON);

                //The icon is returned in the hIcon member of the shinfo struct
                System.Drawing.Icon icon = System.Drawing.Icon.FromHandle(XNative.ShellFileInfoDefault.IconHandle);

                var h_bitmap = icon.ToBitmap().GetHbitmap();
                var result   = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(h_bitmap, IntPtr.Zero,
                                                                                            Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

                XNative.DeleteObject(h_bitmap);

                return(result);
            }
コード例 #7
0
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Загрузка изображения из ресурсов сборки
            /// </summary>
            /// <param name="resource_manager">Менеджер ресурсов</param>
            /// <param name="resource_name">Имя ресурса</param>
            /// <returns>Изображение</returns>
            //---------------------------------------------------------------------------------------------------------
            public static BitmapSource LoadBitmapFromResource(System.Resources.ResourceManager resource_manager, String resource_name)
            {
                Object image = resource_manager.GetObject(resource_name);

                System.Drawing.Bitmap source = (System.Drawing.Bitmap)image;

                if (source != null)
                {
                    var h_bitmap = source.GetHbitmap();
                    var result   = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(h_bitmap, IntPtr.Zero,
                                                                                                Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

                    XNative.DeleteObject(h_bitmap);

                    return(result);
                }

                return(null);
            }