Взгляните на фильтр groupBy, чтобы сгруппировать элементы в 3 группы.
Проверьте RenderCapability. Уровень
[ ОБНОВЛЕНИЕ ]
RenderCapability. Уровень>> 16
На основе ссылки RenderingTier , вот некоторый код:
logger.InfoFormat("WPF Tier = {0}",RenderCapability.Tier / 0x10000);
RenderCapability.TierChanged +=
(sender, args) => logger.InfoFormat("WPF Tier Changed to {0}",
RenderCapability.Tier / 0x10000);
я все еще тестирую и работаю над этим. Посмотрите будущие редактирования/ответы для того, что я нахожу.
Возможно, следующее может помочь со второй частью Вашего вопроса, то есть, можете Вы вызывать один конвейер рендеринга по другому:
можно изменить настройки реестра для отключения аппаратного ускорения и рендеринга программного обеспечения силы для появления в любом случае. Мы часто используем это, чтобы видеть, связан ли конкретный вопрос, который мы видим..., с видеодрайверами. Как пример того, о чем я говорю, посмотрите этот сообщение форума WPF .
Одна очевидная вещь отметить здесь, хотя... то, что это влияет весь приложения WPF и действительно должно только использоваться для тестирования.
Для отключения аппаратного ускорения:
[HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics]
"DisableHWAcceleration"=dword:00000001
Для включения аппаратного ускорения:
[HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics]
"DisableHWAcceleration"=dword:00000000
Выезд этот ссылка MSDN для большего количества информации
Или используйте Профильные Инструменты ...
флажок New был добавлен для расцветки элементов целевого приложения, которые используют представленные Растровые эффекты SW прежней версии.
Для ответа на вторую половину вопроса нет никакого способа, которым я верю действительно для пробиваний по другому. Аппаратный рендеринг автоматически используется при наличии, иначе, программное обеспечение.
, Если необходимо протестировать его в Программном режиме, необходимо будет использовать низкую машину спецификации или использовать Удаленный рабочий стол для просмотра приложения, работающего на другом компьютере. Кроме уменьшенного performance/framerate однако, не должно быть никаких видимых различий по внешности между двумя. Используйте класс RenderCapability, чтобы знать, необходимо ли запретить вещи, такие как анимация или эффекты в пользу производительности.
Я согласен со вторым ответом, но он просто кое-что говорит о способности машины работать с использованием hw-рендеринга, а не если приложение действительно hw-рендерингом.
Я сделал простое приложение, используя холст и просто вращение прямоугольника с помощью RotateTransform требует много ресурсов процессора для визуализированного приложения. Это и значение 'RenderCapability.Tier' равно 2, так что у него достаточно возможностей для этого.
Почему тогда нет?
.NET 4.0 предоставляет возможность принудительного программного рендеринга в коде:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
if (WeThinkWeShouldRenderInSoftware())
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
}
}
См. этот пост для получения дополнительной информации.