WPF - tworzenie UI

0

Cześć chciałbym zrefaktoryzować style dużej aplikacji WPF i nie bardzo wiem jak się za to wziąć jakie są do tego wzorce chodzi mi jak tworzyć style coś w rodzaju templatek i CSS-a.

Potrzebuje zarówno sposobu jak opisywać poszczególne elementy UI w nazwach styli kontrolek jak i samego pomysłu jak stworzyć jasny i przejrzysta strukturę plików ze stylami

1

@Robotyka: Ja tworzę ResourceDictionary albo w projekcie, w którym jest GUI albo w oddzielnym assembly i w zależności od wielkości projektu i złożoności styli sobie to dzielę np. per kontrolka albo jeden plik ze stylami, gdzie obsługuję każdą kontrolkę jako target i ew. jakiś custom gdzie ustawiam key

0

@jarzi: Coś takiego to ja już mam podzieliłem na różne pliki - palete kolorów podstawowych, paleta szczegółowa, style dla kontrolek podstawowych i oddzielną dla dedykowanych i style do czegoś co można nazwać templatką główne style używane w konstrukcji widoków.
Chodzi mi głównie o to ostatnią jak ją zrobić oraz skąd wziąśc nazewnictwo do kluczy np. <Style x:Key="Layout.Column.HeaderOrFooter" TargetType="DockPanel">

1

@Robotyka: Tworzysz ResourceDictionary o nazwie Borders dodajesz np.

<Style x:Key="RoundedBorder" TargetType="{x:Type Border}"> //x:Key to dowolna nazwa, zależy jaką masz konwencję w projekcie,
//ja używam opisowych nazw na ms możesz zobaczyć jaką oni mają konwencję nazewnictwa,
//generalnie jak masz więcej motywów to prócz PascalCase to możesz rozdzielać kropkami żeby to jakoś pogrupować
   <Setter Property="CornerRadius" Value="30,30,30,30" />
   <Setter Property="BorderThickness" Value="1" />
</Style>

wywołujesz:

<Border Style="{StaticResource RoundedBorder}" >
    <Grid>
    </Grid>
</Border>

Tylko jeszcze zaimportuj te style w App.xaml

<ResourceDictionary.MergedDictionaries>
    <styles:Borders/>
</ResourceDictionary.MergedDictionaries>

Możesz nie podawać klucza wtedy będzie się to tyczyło wszystkich kontrolek typu jaki określisz w TargetType i będzie to domyślny styl, możesz jeszcze używać BasedOn gdzie bazujesz na jakimś stylu

1 użytkowników online, w tym zalogowanych: 0, gości: 1