WPF: Visual Studio, как кнопки ошибок

Я думаю, что вы действительно хотите сделать Task.Run, но с помощью специального планировщика. StartNew не работает интуитивно с асинхронными методами; Стивен Тууб имеет отличное сообщение в блоге о различиях между Task.Run и TaskFactory.StartNew .

Итак, чтобы создать свой собственный Run, вы можете сделать что-то вроде этого :

private static readonly TaskFactory myTaskFactory = new TaskFactory(
    CancellationToken.None, TaskCreationOptions.DenyChildAttach,
    TaskContinuationOptions.None, new MyTaskScheduler());
private static Task RunOnMyScheduler(Func func)
{
  return myTaskFactory.StartNew(func).Unwrap();
}
private static Task RunOnMyScheduler(Func> func)
{
  return myTaskFactory.StartNew(func).Unwrap();
}
private static Task RunOnMyScheduler(Action func)
{
  return myTaskFactory.StartNew(func);
}
private static Task RunOnMyScheduler(Func func)
{
  return myTaskFactory.StartNew(func);
}

Затем вы можете выполнить синхронные асинхронные методы или в своем настраиваемом планировщике.

1
задан no9 20 July 2010 в 10:03
поделиться

1 ответ

Кнопка WPF (или ToggleButton) — это элемент управления содержимым, в который можно поместить что угодно.

Я не проверял, но эти кнопки, вероятно, имеют горизонтальную панель стека или DockPanel, с изображением, а затем один или два TextBlocks. Для них можно создать шаблон, а также использовать привязку для задания содержимого TextBlock Text из модели представления.

Snoop ( http://snoopwpf.codeplex.com/ ) - отличный инструмент для выяснения того, как другие люди создали вещи в WPF.

Книга Адама Натана WPF превосходна, и если у вас ее нет, вы должны ее получить. http://www.amazon.co.uk/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917

Вот пример:

  <ToggleButton Height="24" Width="100">
    <DockPanel>
      <Image Source="c:\\temp\\me.jpg" Margin="3"/>
      <TextBlock Text="20 Errors"/>
    </DockPanel>
  </ToggleButton>
2
ответ дан 2 September 2019 в 22:55
поделиться
Другие вопросы по тегам:

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