none
Не отображает( RRS feed

  • Вопрос

  • Доброго времени суток. Есть некая проблемка.

    Есть страница Silverlight, на ней есть label с изначальним Opacity = 0, ещё одна кнопка(onebutton) и Frame.

    Кликаю на onebutton на Frame появляется страница, далее на ней кликаю на некую кнопку и перехожу (во фрейме) на еще одну страницу и также делаю label.Opacity = 1 и меняю текст. Но ничего не происходит(по крайней мере на екране), стоит только обновить страницу как появляется label с нужным текстом.

    А вот когда изначально Opacity = 1 в label то всё работает, и текст изменяется. Помогите срочно!

     

    29 апреля 2011 г. 17:34

Ответы

  • >> Есть страница Silverlight, на ней есть label с изначальним Opacity = 0,
    >> ещё одна кнопка(onebutton) и Frame.
    Например это будет MainPage.xaml:
    <UserControl x:Class="TestSilverlightApplication.MainPage"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
     mc:Ignorable="d"
     d:DesignHeight="300" d:DesignWidth="400">
     <Grid x:Name="LayoutRoot" Background="White">
      <Grid.RowDefinitions>
       <RowDefinition MaxHeight="50" />
       <RowDefinition MaxHeight="50" />
       <RowDefinition />
      </Grid.RowDefinitions>
      <TextBlock x:Name="label" Opacity="0" Text="label" Grid.Row="0"/> <!--label с изначальним Opacity = 0-->
      <Button x:Name="onebutton" Click="onebutton_Click" Grid.Row="1">onebutton</Button> <!--кнопка(onebutton)-->
      <navigation:Frame x:Name="frame" Grid.Row="2" /> <!--Frame-->  
      </Grid>
    </UserControl>
    

     

    >> Кликаю на onebutton на Frame появляется страница,
    Добавим к кнопке onebutton обработчик события клик:

      private void onebutton_Click(object sender, RoutedEventArgs e)
      {
       frame.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
      }
    
    Также создадим эту страницу:
    <navigation:Page x:Class="TestSilverlightApplication.Page1"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
       xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
       d:DesignWidth="640" d:DesignHeight="480"
       Title="страница">
     <Grid x:Name="LayoutRoot">
      <Button Click="Button_Click">некая кнопка</Button>
     </Grid>
    </navigation:Page>
    
    

     

    >> далее на ней кликаю на некую кнопку и перехожу
    >> (во фрейме) на еще одну страницу и также делаю label.Opacity = 1 и меняю текст.
    Добавим к этой некоторой кнопке обработчик события клик:

      //Get all child control with type T
      public IEnumerable<T> GetChildren<T>(DependencyObject d) where T : DependencyObject
      {
       var count = VisualTreeHelper.GetChildrenCount(d);
       for (int i = 0; i < count; i++)
       {
        var c = VisualTreeHelper.GetChild(d, i);
        if (c is T)
         yield return (T)c;
        foreach (var c1 in GetChildren<T>(c))
         yield return c1;
       }
      }
    
      private void Button_Click(object sender, RoutedEventArgs e)
      {
       Frame frame = (Frame)this.Parent;
       frame.Navigate(new Uri("/Page2.xaml", UriKind.Relative)); // переход (во фрейме) на еще одну страницу
       Grid grid = (Grid)frame.Parent;
       foreach (TextBlock tb in GetChildren<TextBlock>(grid))
       {
        tb.Opacity = 1; // делаем label.Opacity = 1
     tb.Text = "new text"; // и меняем текст
     } }
    Ну и наконец, создадим эту еще одну страницу:
    <navigation:Page x:Class="TestSilverlightApplication.Page2"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
    Width="640" d:DesignHeight="480"
       Title="еще одна страница">
     <Grid x:Name="LayoutRoot">
      <TextBlock Text="еще одна страница" />
     </Grid>
    </navigation:Page>
    

     

    Все работает.


    • Предложено в качестве ответа Abbas Gussenov 30 апреля 2011 г. 11:13
    • Помечено в качестве ответа Abolmasov DmitryModerator 3 мая 2011 г. 4:42
    30 апреля 2011 г. 11:08

Все ответы

  • >> Есть страница Silverlight, на ней есть label с изначальним Opacity = 0,
    >> ещё одна кнопка(onebutton) и Frame.
    Например это будет MainPage.xaml:
    <UserControl x:Class="TestSilverlightApplication.MainPage"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
     mc:Ignorable="d"
     d:DesignHeight="300" d:DesignWidth="400">
     <Grid x:Name="LayoutRoot" Background="White">
      <Grid.RowDefinitions>
       <RowDefinition MaxHeight="50" />
       <RowDefinition MaxHeight="50" />
       <RowDefinition />
      </Grid.RowDefinitions>
      <TextBlock x:Name="label" Opacity="0" Text="label" Grid.Row="0"/> <!--label с изначальним Opacity = 0-->
      <Button x:Name="onebutton" Click="onebutton_Click" Grid.Row="1">onebutton</Button> <!--кнопка(onebutton)-->
      <navigation:Frame x:Name="frame" Grid.Row="2" /> <!--Frame-->  
      </Grid>
    </UserControl>
    

     

    >> Кликаю на onebutton на Frame появляется страница,
    Добавим к кнопке onebutton обработчик события клик:

      private void onebutton_Click(object sender, RoutedEventArgs e)
      {
       frame.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
      }
    
    Также создадим эту страницу:
    <navigation:Page x:Class="TestSilverlightApplication.Page1"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
       xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
       d:DesignWidth="640" d:DesignHeight="480"
       Title="страница">
     <Grid x:Name="LayoutRoot">
      <Button Click="Button_Click">некая кнопка</Button>
     </Grid>
    </navigation:Page>
    
    

     

    >> далее на ней кликаю на некую кнопку и перехожу
    >> (во фрейме) на еще одну страницу и также делаю label.Opacity = 1 и меняю текст.
    Добавим к этой некоторой кнопке обработчик события клик:

      //Get all child control with type T
      public IEnumerable<T> GetChildren<T>(DependencyObject d) where T : DependencyObject
      {
       var count = VisualTreeHelper.GetChildrenCount(d);
       for (int i = 0; i < count; i++)
       {
        var c = VisualTreeHelper.GetChild(d, i);
        if (c is T)
         yield return (T)c;
        foreach (var c1 in GetChildren<T>(c))
         yield return c1;
       }
      }
    
      private void Button_Click(object sender, RoutedEventArgs e)
      {
       Frame frame = (Frame)this.Parent;
       frame.Navigate(new Uri("/Page2.xaml", UriKind.Relative)); // переход (во фрейме) на еще одну страницу
       Grid grid = (Grid)frame.Parent;
       foreach (TextBlock tb in GetChildren<TextBlock>(grid))
       {
        tb.Opacity = 1; // делаем label.Opacity = 1
     tb.Text = "new text"; // и меняем текст
     } }
    Ну и наконец, создадим эту еще одну страницу:
    <navigation:Page x:Class="TestSilverlightApplication.Page2"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
    Width="640" d:DesignHeight="480"
       Title="еще одна страница">
     <Grid x:Name="LayoutRoot">
      <TextBlock Text="еще одна страница" />
     </Grid>
    </navigation:Page>
    

     

    Все работает.


    • Предложено в качестве ответа Abbas Gussenov 30 апреля 2011 г. 11:13
    • Помечено в качестве ответа Abolmasov DmitryModerator 3 мая 2011 г. 4:42
    30 апреля 2011 г. 11:08
  • сделал под свой проект, нет, не работает(

     

  • Покажите код и XAML разметку.
  • короч прикол в том что в IE9 все работает и отображает, а в Mozille4.01 только после обновления(
    • Предложено в качестве ответа Dmitry Pavlov 1 мая 2011 г. 20:31