Может ли содержимое пользовательского контроля быть изменено во время выполнения в Windows Phone - PullRequest
1 голос
/ 04 января 2012

Мне нужно отобразить всплывающие окна в моем приложении.Так что у меня есть пользовательские элементы управления для создания всплывающих окон.Каждое всплывающее окно показывает другое сообщение и различный набор кнопок.Могу ли я использовать один и тот же xaml для изменения текста и создания новых кнопок?Или мне нужно создавать отдельные пользовательские элементы управления?

 <Grid Height="250" Width="480">
    <Canvas Margin="0,0,0,0">
        <Canvas.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Black" Offset="0"/>
                <GradientStop Color="#FF121111" Offset="1"/>
            </LinearGradientBrush>
        </Canvas.Background>
        <Button Content="Buy" x:Name="buttonBuy" Click="btnBuyNow_Click" BorderThickness="0" Style="{StaticResource UserControlBuy}" MinWidth="96" MinHeight="98" FontFamily="{StaticResource CicleFina}" FontSize="18.667" Canvas.Left="189" Canvas.Top="141" Height="98" Width="96" Foreground="#FF0E0C0C">
            <Button.Background>
                <ImageBrush ImageSource="Images/02/but_bg_trial_buy.png"/>
            </Button.Background>                
        </Button>
        <TextBlock TextWrapping="Wrap" FontSize="21.333" Padding="10" Text="Your trial period is over. Please purchase the full version" Height="141" Width="479"  Foreground="#D48394" FontFamily="{StaticResource PeaSnow}" TextAlignment="Center" d:LayoutOverrides="Width, Height"/>
    </Canvas>
</Grid>

Так я назвал всплывающее окно в приложении.

        Popup popup = new Popup();
        BuyNowUserControl content = new BuyNowUserControl(popup);
        // set the width of the popup to the width of the screen
        content.Width = System.Windows.Application.Current.Host.Content.ActualWidth;
        popup.Child = content;
        popup.VerticalOffset = 300;
        popup.IsOpen = true;

Спасибо

Алфа

1 Ответ

3 голосов
/ 04 января 2012

Да, вы можете использовать их повторно.Я бы сделал следующее:

  1. Создайте свойства зависимостей на вашем пользовательском элементе управления для настраиваемого текста, который вам требуется.
  2. Установите DataContext UserControl на себя
  3. Замените ваш жестко закодированный текст в приведенном выше XAML привязкой к свойству зависимости, добавленной в (1)
  4. Теперь вы можете установитьтекст на экземпляре пользовательского элемента управления после того, как вы его создали.Привязка будет гарантировать, что пользовательский интерфейс отражает это.

На самом деле это довольно трудоемкая работа, чтобы достичь этого, поэтому стоит оценить выгоду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...