2012-10-20 9 views
5

WinRT nie ma OuterGlowBitmapEffect. Czy istnieje sposób na wyświetlenie zewnętrznego efektu świecenia dla WinRT w wersji TextBlock?Efekt zewnętrznego blasku dla TextBlock w WinRT

+0

Jaki rodzaj zawartości chcesz zastosować do blasku? Czy jest to tekst, wektory lub bitmapy i czy jest to statyczne czy nie? – Kris

+0

Jeśli nie chcesz używać HTML i CSS, skorzystam z drugiej opublikowanej przeze mnie opcji, chyba że potrzebujesz obsługi wielu czcionek i rozmiarów lub akapitów tekstu. Będzie potrzebować kilku poprawek dla WinRT. – Kris

Odpowiedz

5

Nie ma dobrego sposobu na zastosowanie efektów do zawartości XAML, WinRT również obecnie nie ma sposobu na renderowanie elementów XAML do bitmapy, więc pozostawiasz głównie metody, w których nie używasz XAML.

Upewnij się, że blask jest niezbędny i sprawdziłeś aplikacje guidelines dla systemu Windows 8. Jeśli twój pewny trzeba go oto kilka propozycji:

  • dla prostych przypadkach może być w stanie używać gradientów lub kopiowane geometrię, aby uzyskać blask wpłynąć.

  • Łącząc grafikę z blaskiem już zastosowanym w aplikacji, to oczywiście nie działałoby dla całkowicie dynamicznych kształtów, ale można to zrobić dla tekstu podobnego do mojej odpowiedzi here.

  • Zastosowanie Direct2D zamiast XAML i użyć Direct2D effects (SharpDX oferuje wiązania dla Direct2D)

  • Jeśli trzeba zastosować blask bitmapy można użyć WriteableBitmap i zastosować się świecić. (WriteableBitmapEX może być przydatny)

  • Użyj HTML i CSS zamiast XAML, prawdopodobnie hostowane w WebView lub dla całej aplikacji.

+0

Muszę wyświetlić tekst na obrazku, który ma zarówno jasne, jak i ciemne tło, więc naprawdę potrzebuję użyć zewnętrznego efektu poświaty. – Elmo

+0

Umieszczenie czarnego bloku tekstu pod białym i przesunięcie go po przekątnej spowodowałoby, że tekst byłby widoczny, ale jeśli potrzebujesz blasku, opcje 2 i 3 zadziałają. Mogę spojrzeć na aktualizację kodu dla WinRT w razie potrzeby. Jest to znacznie prostsze w HTML, ponieważ obsługiwany jest cień tekstowy. – Kris