Если вам действительно нужны десятичные числа для вычисления (и не только для вывода), не используйте бинарный формат с плавающей запятой, например double.
Use BigDecimal or any other decimal-based format.
Я использую BigDecimal для вычислений, но помните, что он зависит от размера чисел, с которыми вы имеете дело. В большинстве моих реализаций я нахожу, что синтаксический анализ из двойного или целого числа в Long достаточно для вычисления очень большого числа.
На самом деле, я недавно использовал parsed-to-Long для получения точных представлений (как против шестнадцатеричных результатов) в графическом интерфейсе для чисел, больших как ################################# символов (как пример). [/ д2]
Нет никакого NotifyIcon для WPF.
Мой коллега использовал эту свободно доступную библиотеку для хорошего эффекта:
Вы должны использовать элемент управления NotifyIcon из System.Windows.Forms, или, альтернативно, вы можете использовать API значков уведомлений, предоставляемый Windows API. WPF Не дает такого эквивалента, и он был запрошен в Microsoft Connect несколько раз.
У меня есть код в GitHub, который использует System.Windows.Forms
NotifyIcon Component из приложения WPF, код можно просмотреть на https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs
Вот сводные биты:
Создайте окно WPF с ShowInTaskbar = False и загрузите его в не видимое состояние.
На уровне класса:
private System.Windows.Forms.NotifyIcon notifyIcon = null;
Во время OnInitialize ():
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];
Во время OnLoaded ():
notifyIcon.Visible = true;
И для взаимодействия (показано как notifyIcon.Click и DoubleClick выше):
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
Здесь вы можете возобновить использование элементов управления WPF и API, таких как контекстные меню, всплывающие окна и т. д.
Это так просто. Вам не обязательно нужно WPF-окно для размещения компонента, это просто самый удобный способ внедрить его в приложение WPF (поскольку окно обычно является точкой входа по умолчанию, определенной через App.xaml), аналогично, t требуется WPF Wrapper или сторонний элемент управления, поскольку SWF-компонент гарантированно присутствует в любой установке .NET Framework, которая также поддерживает WPF, так как она является частью .NET Framework (на которой основаны все текущие и будущие версии .NET Framework). На сегодняшний день Microsoft не указывает, что поддержка SWF будет удалена из .NET Framework в ближайшее время.
Надеюсь, что это поможет.
Это немного сыра, который вы должны использовать Компонент pre-3.0 Framework для получения значка в трее, но, как объяснил Microsoft, в рамках WPF нет концепции системного лотка. WPF - это технология презентации, а значки уведомлений - это концепция операционной системы (не концепция «презентация»).
Недавно у меня была такая же проблема. К сожалению, NotifyIcon - это только элемент управления Windows.Forms на данный момент, если вы хотите его использовать, вам придется включить эту часть фреймворка. Я предполагаю, что это зависит от того, насколько вы являетесь WPF-пуристом.
Если вам нужен быстрый и простой способ начать работу с этим элементом управления WPF NotifyIcon в Code Project , который вообще не полагается на WinForms NotifyIcon. Более поздняя версия доступна на веб-сайте автора и в качестве пакета NuGet .
blockquote>
- Rich ToolTips, а не текст
- Контекстные меню и всплывающие окна WPF
- Поддержка команд и маршрутизируемых событий
- Гибкая привязка данных
- Сообщения с расширенным воздушным шаром, а не сообщения по умолчанию, предоставляются ОС
Проверить это из. Он поставляется с удивительным примером приложения тоже, очень проста в использовании, и вы можете иметь великолепные всплывающие окна, всплывающие подсказки, контекстные меню Windows Live Messenger. Идеально подходит для отображения RSS-канала, я использую его для аналогичной цели.