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}