ContentTemplate с использованием C# вместо XAML в Windows Phone

То, что я пытаюсь сделать, это использовать C# для написания кода ContentTemplate вместо XAML. Вот код XAML, который у меня есть:

<phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Key="AnyButton">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="140"/>
                    <ColumnDefinition Width="310"/>
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0" Source="/Images/AnyImage.png" Height="80" Width="80" HorizontalAlignment="Left" Margin="15,0,0,0"/>
                <TextBlock Grid.Column="1" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Left" Text="AnyText" FontSize="30" FontFamily="{StaticResource PhoneFontFamilySemiLight}" Margin="0,0,0,0"/>
            </Grid>
        </DataTemplate>
</phone:PhoneApplicationPage.Resources>

А вот код, который я использовал внутри моей ContentPanel для использования ContentTemplate:

<Button x:Name="MyButton" 
        Click="MyButton_Click" 
        ContentTemplate="{StaticResource AnyButton}" 
        Width="492" Height="130" 
        Margin="6,0,6,-6" 
        Background="#003d0a"/>

Теперь мой вопрос: возможно ли написать весь код с использованием C#?

1 ответ

Решение

Если вы пытаетесь сделать это с целью стилизации, сделайте это следующим образом:

<Style x:Key="MyButton" TargetType="Button">
            <Setter Property="Width" Value="460"></Setter>
            <Setter Property="Background" Value="/Images/AnyImage.png"></Setter>
        </Style>

определите это в app.xaml или PhoneApplicationPage.resources, а в элементе управления кнопки в xaml установите стиль MyButton. например:

<Button style={StaticResource MyButton}/>

если вы также хотите определить ширину и высоту для вашего изображения, вы можете сделать это таким же образом, определив стиль в разделе значений, установив значение с этим стилем. например:

<style x:key ="MyImage" TargetType="Image">
  <setter property="Width" Value="150"/>
</style>

в моем стиле кнопки определить фоновое значение ={StaticResource MyImage}

Другие вопросы по тегам