Considerazioni sulle prestazioni e riduzione del codice per i modelli

2

Sto cercando di decidere se questa potrebbe essere una buona idea aiutare a ridurre la dimensione di alcuni dei miei dizionari di risorse xaml su un grande progetto. Tranne che sono preoccupato per eventuali problemi di prestazioni che si verificano su questa rotta, sperando così di ottenere informazioni da altre persone con competenze tecniche.

Quindi, ad esempio, diciamo che ci sono dozzine di modelli di controllo Style che ho standardizzato per utilizzare convenzioni di denominazione condivise nei loro oggetti e nella loro gestione. Per fare un esempio più chiaro, diciamo che hai cose come Buttons / TextBoxes / GridSplitters / CheckBoxes etc etc etc.

Tutti hanno il proprio modello di stile, ma tutti avrebbero detto un Border che è compresso di default, ma ognuno ha la stessa Visibilità alternando DoubleAnimation nel rispettivo Storyboard per lo stato di MouseOver come definito nel VisualStateManager

Il che rende praticamente ripetuta la stessa percentuale ripetuta di% co_de ripetutamente per dozzine di controlli per quello stato di MouseOver.

La mia domanda è che potrei avere un impatto negativo sulle prestazioni se avessi fatto ognuno di questi DoubleAnimation eccessivamente ripetitivo nella propria risorsa, quindi invece di ripetere la stessa cosa più e più volte su ogni modello di stile come;

<VisualState x:Name="MouseOver">
   <Storyboard>
      <DoubleAnimation .../>
   </Storyboard>
</VisualState>

Potrei invece prendere quello che è stato ripetuto esattamente lo stesso Storyboards e fare qualcosa del genere senza influire negativamente (e speriamo addirittura migliorando) le prestazioni di un progetto così grande come;

<Storyboard x:Name="TheRepetitiveAnimation">
   <DoubleAnimation ..../>
</Storyboard>

Quindi su ogni istanza in ogni modello invece di ripetere l'intera animazione che potevo fare;

<VisualState x:Name="MouseOver>
   <BeginStoryboard Storyboard="{StaticResource TheRepetitiveAnimation"/>
</VisualState>

Perché se potessi farlo in questo modo, probabilmente potrei radere almeno altre migliaia di righe dai dizionari delle mie risorse scambiando le animazioni ripetute su più righe con un riferimento di una riga a un% master% co_de in questo modo.

Tranne che sono preoccupato di fare questo per così tanti modelli di controllo che richiamano per fare riferimento allo stesso storyboard per tutta la stessa istanza, potrebbero produrre risultati opposti di quello che sto cercando di fare. Il che è semplicemente quello di ridurre le dimensioni / ingombri di tutti gli XAML e, auspicabilmente, anche accelerare le cose nel processo.

Qualche idea benvenuta, evviva.

    
posta Chris W. 22.03.2014 - 20:28
fonte

0 risposte

Leggi altre domande sui tag