Как я получаю Изображение для различного MessageBoxImage (s) или MessageBoxIcon (s)

Я могу ошибаться, но большинство ответов, которые я видел относительно сохранения интервалов, используют метод OnTime. На самом деле это недоступно в PowerPoint, поэтому я не уверен, что то, что вы хотите сделать, возможно.

45
задан Simon 24 July 2019 в 21:04
поделиться

3 ответа

SystemIcons is what I was looking for:

SystemIcons.Warning.ToBitmap();
57
ответ дан 26 November 2019 в 21:05
поделиться
MessageBox.Show(
  "Hello, world!",
  "My App",
  MessageBoxButton.OK, MessageBoxImage.Information);

Настолько простой.

0
ответ дан 26 November 2019 в 21:05
поделиться

Вы также можете включить SystemIcons в свой XAML следующим образом:

Включите преобразователь (см. Код ниже) в качестве ресурса, а элемент управления изображением в свой XAML. В этом примере изображения показан значок информации.

     <Window.Resources>
        <Converters:SystemIconConverter x:Key="iconConverter"/>
     </Window.Resources>

     <Image Visibility="Visible"  
            Margin="10,10,0,1"
            Stretch="Uniform"
            MaxHeight="25"
            VerticalAlignment="Top"
            HorizontalAlignment="Left"
            Source="{Binding Converter={StaticResource iconConverter}, ConverterParameter=Information}"/>

Вот реализация преобразователя:

using System;
using System.Drawing;
using System.Globalization;
using System.Reflection;
using System.Windows;
using System.Windows.Data;
using System.Windows.Interop;
using System.Windows.Media.Imaging;

namespace Converters
{
   [ValueConversion(typeof(string), typeof(BitmapSource))]
   public class SystemIconConverter : IValueConverter
   {
      public object Convert(object value, Type type, object parameter, CultureInfo culture)
      {
         Icon icon = (Icon)typeof(SystemIcons).GetProperty(parameter.ToString(), BindingFlags.Public | BindingFlags.Static).GetValue(null, null);
         BitmapSource bs = Imaging.CreateBitmapSourceFromHIcon(icon.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
         return bs;
      }

      public object ConvertBack(object value, Type type, object parameter, CultureInfo culture)
      {
         throw new NotSupportedException();
      }
   }
}
32
ответ дан 26 November 2019 в 21:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: