Stavo scherzando con margini e imbottiture e ho scoperto che un valore negativo era accettabile e dà un buon effetto in circostanze appropriate. Ad esempio, se hai un bordo con un oggetto pieno e vuoi che il colore dell'oggetto riempito superi il bordo. Qualcuno ne ha altri?WPF semplici consigli e trucchi?
risposta
calcolare l'immobiliare a disposizione sotto forma di percentuale:
<Grid.RowDefinitions>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
</Grid.RowDefinitions>
EDIT:
Questo funziona, ma non è indicativo di come le funzioni parametriche *. Questo:
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
fornisce la stessa funzionalità. Se volete qualcosa di diverso righe uguale altezza è possibile utilizzare:
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="3*"/>
<RowDefinition Height="4*"/>
</Grid.RowDefinitions>
che dividerà l'altezza disponibile per 10 e mantenere l'altezza relativa di ogni riga. In alternativa, i valori potrebbero essere 0,1, 0,2, 0,3, e 0,4 o qualsiasi valore proporzionale.
Includono parentesi graffe nel contenuto di un controllo.
<Button Content="{}{This is not a markup extension.}"/>
impostare uno stile di debug che fornisce indicazioni visive:
<Window.Resources>
<Style x:Key="DebugGrid" TargetType="Grid">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ShowGridLines" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid Name="Grid"
Style="{StaticResource DebugGrid}"
Background="Black">...
Inserire virgolette doppie nel contenuto:
<Button Name="Button"
Background="AntiqueWhite"
Content="{}{Background="AntiqueWhite"}"/>
Una nuova funzionalità di WPF consegnata con 3.5 SP1 è la possibilità di formattare la tua corda mentre leghi. Elimina l'utilizzo di IValueConverter
per tali scenari comuni. Ecco alcuni esempi per farti andare, che ho copiato da this blog post
<TextBox Text="{Binding Path=Double, StringFormat=F3}"/>
<TextBox Text="{Binding Path=Double, StringFormat=Amount: {0:C}}"/>
<TextBox Text="{Binding Path=Double, StringFormat=Amount: \{0:C\}}"/>
<TextBox>
<TextBox.Text>
<Binding Path="Double" StringFormat="{}{0:C}"/>
</TextBox.Text>
</TextBox>
A Grid
con la Background
sinistra come predefinito o set con un pennello Transparent
non si attiva l'evento IsMouseOver
a meno che il cursore si trova sopra un controllo che contiene. Per garantire che l'evento venga attivato sullo stesso Grid
, simulare Transparency
impostando Background
nel colore del contenitore Background
.
non valido per i pennelli. Sfondo trasparente a partire da .net 4.0 (non so per le versioni precedenti), ma vero per lo sfondo predefinito impostato su "{ x: Null} "e non si comporta come Brushes.Transparent. Ad esempio: se si desidera intercettare mouseDownEvent su un controllo di sfondo trasparente, è necessario impostarne esplicitamente lo sfondo su Brushes.Transparent – David
IsMouseOver
e IsMouseDirectlyOver
sono eventi diversi. IsMouseOver
risponde a tutti i movimenti del mouse all'interno di un controllo ed è bambini. IsMouseDirectlyOver
risponde solo se il cursore si trova sopra il controllo stesso. Ad esempio, se si dispone di un'etichetta all'interno di un bordo, l'evento IsMouseDirectlyOver
per il bordo viene attivato solo se il cursore si trova sopra il bordo stesso ma NON sopra l'etichetta contenuta.
Non sono sicuro se la risposta risponda alla domanda originale, ma ha chiarito cosa stavo cercando. (+1) – jpierson
Un controllo con lo sfondo impostato su Trasparente NON attiva gli eventi IsMouseOver o IsMouseDirectlyOver. Ad esempio, se lo sfondo di un bordo è impostato su Trasparente ma BorderBrush = Blu e BorderWidth è <> 0, gli eventi MouseOver si attivano mentre si trova sul bordo stesso ma non mentre si trova all'interno del controllo.
Debugaggio del binding WPF.
Aggiunta di tracciamento oggetti rilegati:
<Window …
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"/>
<TextBlock Text="{Binding Path=Caption,
diagnostics:PresentationTraceSources.TraceLevel=High}"…/>
Vedrete nella finestra di output più dettagli sulla rilegatura:
PropertyChanged event from SomeObject (hash=1)
SetValue at level 0 from SomeObject (hash= 1) using RuntimePropertyInfo(Field):
'False'
TransferValue - got raw value 'False'
TransferValue - using final value 'False'
// EDIT Ulteriori informazioni here.
Ariel
La proprietà è BorderThickness. Non importa quante volte digiti BorderWidth, non funzionerà!
Visibility
è un tre stati System.Windows.Visibility censimento:
- Visible - L'elemento ottiene resa e partecipa nel layout.
- Compresso: l'elemento è invisibile e non partecipa al layout. Dare in modo efficace altezza e larghezza a 0 e comportarsi come se non esistesse.
- Nascosto - L'elemento è invisibile ma continua per partecipare al layout.
Padding
e Margin
vengono immessi utilizzando la sintassi delimitata da virgole e sono di tipo Spessore. Essi possono essere inseriti come:
- Imbottitura = "5" (5 imbottitura è su tutti e quattro i lati)
- Imbottitura = "5,10,15,20" (imbottitura è Sinistra: 5 Top: 10 Diritto : 15 in basso: 20)
- Imbottitura = "5,10" (imbottitura è 5 a sinistra/destra e 10 sul alto/basso)
Puoi anche delimitarli per spazio semplice. Riempimento = "5 10 15 20" –
Fornire una riga o colonna unica per un GridSplitter
per garantire che non è nascosto da altri controlli e si comporta come previsto.
impostare una proprietà in codice dietro ad un DynamicResource:
Border_Toolbar.SetResourceReference(BackgroundProperty, "Brush_ToolbarBackground")
Decidere dimensioni di un controllo basato su un altro in fase di esecuzione.
<... Width="{Binding ElementName=referenceElement, Path=ActualWidth}" ../>
Questo può essere fatto anche con Height/MaxHeight
ecc.
- 1. Trucchi e consigli di WCF
- 2. Trucchi e consigli circa l'ottimizzazione delle query [SQL Server 2005]
- 3. È disponibile un foglio trucchi WPF?
- 4. Suggerimenti e trucchi professionali
- 5. SQL Server - Suggerimenti e trucchi per sinonimi?
- 6. Suggerimenti, trucchi e trucchi per framework di entità
- 7. Snap tutorial e consigli
- 8. Suggerimenti e trucchi per l'ottimizzazione
- 9. Consigli per l'apprendimento di Perl?
- 10. Consigli per creare una finestra di registro in WPF
- 11. Iniezione DAO e dipendenza, consigli?
- 12. Consigli e suggerimenti di SQLPLUS preferiti
- 13. Suggerimenti, trucchi e personalizzazioni della console Rails
- 14. Utf-8 in C++: trucchi rapidi e sporchi
- 15. Fatturazione ricorrente con Rails e ActiveMerchant: best practice, insidie, trucchi?
- 16. JavaConfig: Sostituzione AOP: consigliere e tx: consigli
- 17. Curva di apprendimento Magento e migliori consigli
- 18. Consigli e tecniche di replicazione Muzak
- 19. Come creare fogli di trucchi in lattice?
- 20. Wpf UserControl e MVVM
- 21. Esempi semplici di co e controvarianza
- 22. specificatori tipo typedef e non semplici
- 23. Consigli di implementazione multistadio?
- 24. trucchi per la scrittura rubygems
- 25. Amazon S3 ridenominazione e sovrascrittura file, consigli e rischi
- 26. Consigli di scalabilità CEDET
- 27. Consigli sul programma Java
- 28. Consigli di prestazione H2
- 29. consigli su hyperfile db
- 30. Strumento corretto per interfacce XML semplici
Ah, tempo di risparmio definito. –