Question

What can I do in the following situation?

I have a simple page. In code behind I add PhoneTextBox control for some filtering of a data. But sometimes (frequently) when I try to write something, I see, that text inside is transparent or collapsed or something else, so I don't see it. I don't see it even when I select this text.

// Generating of a PhoneTextBox    

SearchBox = new Microsoft.Phone.Controls.PhoneTextBox();
SearchBox.DataContext = searchBoxContext;
SearchBox.Name = string.Format("SearchBox_{0}", Guid.NewGuid());
SearchBox.Visibility = Visibility.Collapsed;

// Adding Phone text box in a Grid on the Page

RowDefinition rd = new RowDefinition();
rd.Height = GridLength.Auto;
PageDynamicGrid.RowDefinitions.Insert(0, rd);
Grid.SetRow(generator.SearchBox, 0);

foreach (FrameworkElement child in PageDynamicGrid.Children)
{
    Grid.SetRow(child, Grid.GetRow(child) + 1);
}

SearchBoxContext = (generator.SearchBox.DataContext as SearchButtonModel);
SearchBoxContext.SearchTextChanged += SearchBoxContext_SearchTextChanged;
generator.SearchBox.TextChanged += SearchBox_TextChanged;
generator.SearchBox.LostFocus += SearchBox_LostFocus;
generator.SearchBox.KeyUp += SearchBox_KeyUp;
generator.SearchBox.DataContext = null;
PageDynamicGrid.Children.Add(generator.SearchBox);
PageDynamicGrid.UpdateLayout();

and page.xaml

<Grid x:Name="PageDynamicGrid" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel Grid.Row="0" Margin="12,17,0,28">
        <TextBlock Text="{Binding Title}"
                   Style="{StaticResource PhoneTextTitle1Style}" />
    </StackPanel>

    <ListBox Grid.Row="1" Margin="12,0"
             ItemsSource="{Binding PageDynamicContent, Mode=OneWay}"/>    
</Grid>

Almost all content of this page (including search box) creates dynamically, but other content is some buttons and links and I need to filter it, if I have search box. Filter works, but users don't like collapsed text in search box. So it looks like that (and there is not a whitespaces in front of the marker)

enter image description here

Was it helpful?

Solution

So, i don't know why, but it seemed that problem is in the order of actions:

  1. First of all create element, change grid column and row definitions and add element in the grid.
  2. Update layout of the grid.
  3. And only after all this actions we can collapse PhoneTextBox.

it works for me.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top