C'è qualche "tipo segnaposto" proprietà availble per casella di testo in XAML in Windows Phone 8Perchè non c'è PlaceHolder come la proprietà in XAML TextBox
risposta
C'è il PhoneTextBox nello Windows Phone Toolkit ufficiale, coperto here.
codice di esempio:
<toolkit:PhoneTextBox Hint="Password"/>
Per aggiungere toolkit al progetto: Digitare il seguente nel pacchetto console manager:
PM> Install-Package WPtoolkit
E
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
all'interno <phone:PhoneApplicationPage
tag nella pagina xaml
Non v'è alcuna proprietà segnaposto per TextBox. Io uso la seguente soluzione per aggirare questo per una casella di testo nome utente:
XAML:
<Grid>
<TextBlock Name="UsernamePlaceholder" Text="Username" />
<TextBox Name="UsernameTextBox" Text="" GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/>
</Grid>
Codice:
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
UsernamePlaceholder.Visibility = Visibility.Collapsed;
}
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
if (sender is TextBox)
{
var textbox = sender as TextBox;
if (string.IsNullOrEmpty(textbox.Text))
{
UsernamePlaceholder.Visibility = Visibility.Visible;
}
}
}
Questo sostituisce fondamentalmente la TextBox con un Grid-elemento, che contiene un TextBox e un TextBlock (che funziona come segnaposto). Quindi, quando la casella di testo è focalizzata, il blocco di testo è nascosto e quando perde la messa a fuoco il blocco di testo viene visualizzato se la casella di testo è vuota.
La mia soluzione è basata sulla risposta di PKENO
XAML (UserControl):
<UserControl x:Class="FestivalProject.Controls.TextBoxPH"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<TextBox x:Name="testTextBox" Margin="0" LostFocus="testTextBox_LostFocus" GotFocus="testTextBox_GotFocus"/>
</UserControl>
Codice dietro UserControl:
public partial class TextBoxPH : UserControl
{
private String _Text;
public String Text
{
get { return _Text; }
set {
_Text = testTextBox.Text = value;
}
}
private String _PlaceHolder;
public String PlaceHolder
{
get { return _PlaceHolder; }
set {
_PlaceHolder =testTextBox.Text = value;
}
}
public TextBoxPH()
{
InitializeComponent();
}
private void testTextBox_LostFocus(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(testTextBox.Text)) testTextBox.Text = PlaceHolder;
}
private void testTextBox_GotFocus(object sender, RoutedEventArgs e)
{
if (testTextBox.Text.Equals(PlaceHolder, StringComparison.OrdinalIgnoreCase)) testTextBox.Text = string.Empty;
}
}
XAML (in finestra):
<txtPH:TextBoxPH Margin="5" Grid.ColumnSpan="2" PlaceHolder="PlaceholderText"/>
Probabilmente non è il modo più efficiente, ma funziona.
Prova in questo modo qui di seguito il codice:
<TextBox x:Name="InvoiceDate" Text="" Width="300" TextAlignment="Left" Height="30" Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" />
<TextBlock IsHitTestVisible="False" Text="Men att läsa" Width="300" TextAlignment="Left" Height="30" Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" Padding="5, 5, 5, 5" Foreground="LightGray">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Text, ElementName=InvoiceDate}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
- 1. MVVM e la proprietà SelectedText del TextBox
- 2. Come database proprietà pubblica in xaml
- 3. XAML: La proprietà 'Risorse' è impostato più di una volta
- 4. XAML Collegamento alla proprietà
- 5. XAML Elementi proprietà
- 6. TextInput placeHolder Alignment
- 7. Tag Textbox e proprietà IsHitTestVisible
- 8. TextBox WPF non compila StackPanel
- 9. Impossibile modificare la proprietà XAML, bordo giallo in VS2012
- 10. WPF: dichiarazioni di proprietà XAML non impostate tramite Setter?
- 11. TextBox non sempre aggiorna
- 12. Associare alla proprietà ICollectionView.Count in XAML
- 13. Animazione dell'elemento WPF in XAML utilizzando la proprietà associata?
- 14. Quanto è affidabile la proprietà MaxLength di TextBox-Control?
- 15. CSS MENO Placeholder Mixin
- 16. wpf textbox text binding
- 17. WPF: come associare a una proprietà nidificata?
- 18. Come impostare le proprietà di d: DesignInstance in XAML?
- 19. x: significato in XAML
- 20. rendere il testo "default" a comparire in un TextBox vuoto, senza messa a fuoco utilizzando XAML
- 21. Come impostare la messa a fuoco automatica solo in xaml?
- 22. Associazione di una proprietà da una classe a XAML direttamente
- 23. XAML - La proprietà "Contenuto" è impostata più di una volta
- 24. java swing JTextField set PlaceHolder
- 25. Come mantenere la selezione TextBox WPF quando non è focalizzata?
- 26. Come compilare la combobox wpf in xaml
- 27. Rails/spec fill_in con placeholder
- 28. Come disattivare la selezione su un TextBox
- 29. xamarin.forms vincolante da xaml alla proprietà
- 30. Serializzare la proprietà, ma non deserializzare la proprietà in Json.Net
grazie il suo utile. – John
VerticalContentAlignment = "Top" non funziona? qualcuno sa come renderlo allineato in verticale in alto (il testo che è) – Jimmyt1988
C'è un modo per mantenere il testo suggerimento quando la texbox riceve lo stato attivo ?? –