2009-09-01 2 views
1

Как закодировать конвертер в WPF для отображения четырех значков состояния в WPF. В моем проекте я планирую отобразить следующие четыре состояния на основе определенных условий. 1) Значок Red Dot - Несохраненные данные 2) Значок зеленой точки - Сохранить успешно 3) Значок «Белая точка» ИЛИ Нет значка - окно успешно инициализировано и нет несохраненных данных. 4) Значок ошибки. При сохранении данных были ошибки.String to Image WPF Converter

Любая помощь будет высоко оценена, спасибо заранее.

+0

вы имеете в виду, как изменить значок показал в заголовке окна или просто отображать точки? –

ответ

1

Если вы хотите изменить значок окна самый простой способ заключается в создании всех иконок и сохранить их в качестве ресурса, а затем изменить его с помощью:

Uri iconUri = new Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute); 
this.Icon = BitmapFrame.Create(iconUri); 

Если вы хотите просто отобразить точки на вашей форме вы рисуете круг и изменить свой цвет с yourCircle.Fill (newColor)

Этот пример из msdn:

Чтобы нарисовать круг, указать эллипс ш шланг Значения ширины и высоты: равно.

using System; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Media; 
using System.Windows.Shapes; 

namespace SDKSample 
{ 
    public partial class SetBackgroundColorOfShapeExample : Page 
    { 
     public SetBackgroundColorOfShapeExample() 
     { 
      // Create a StackPanel to contain the shape. 
      StackPanel myStackPanel = new StackPanel(); 
      // Create a red Ellipse. 
      Ellipse myEllipse = new Ellipse(); 
      // Create a SolidColorBrush with a red color to fill the 
      // Ellipse with. 
      SolidColorBrush mySolidColorBrush = new SolidColorBrush(); 
      // Describes the brush's color using RGB values. 
      // Each value has a range of 0-255. 
      mySolidColorBrush.Color = Color.FromArgb(255, 255, 255, 0); 
      myEllipse.Fill = mySolidColorBrush; 
      myEllipse.StrokeThickness = 2; 
      myEllipse.Stroke = Brushes.Black; 
      // Set the width and height of the Ellipse. 
      myEllipse.Width = 200; 
      myEllipse.Height = 100; 
      // Add the Ellipse to the StackPanel. 
      myStackPanel.Children.Add(myEllipse); 
      this.Content = myStackPanel; 
     } 
    } 
} 
+0

Большое спасибо, Как предложено, я нарисую круг и изменю его цвет. –