mytoolkit:FixedHtmlBlock更改样式,xaml

本文关键字:样式 xaml FixedHtmlBlock mytoolkit | 更新日期: 2023-09-27 18:07:11

所以我正在开发一个Windows Phone 8应用程序,我正在使用mytoolkit:FixedHtmlBlock来显示html内容。我的代码低于

<mytoolkit:FixedHtmlTextBlock Html="{Binding Content}" FontSize="24" Foreground="{StaticResource AppForegroundColor}" />

我想自定义h3标签的样式,我在这里找到了这个文档https://mytoolkit.codeplex.com/wikipage?title=HtmlTextBlock

它说我们可以使用以下代码来定制样式

((ParagraphGenerator)((HtmlTextBlock)html).Generators["h2"]).FontSize = 26; ((ParagraphGenerator)((HtmlTextBlock)html).Generators["h3"]).FontSize = 20; ((ParagraphGenerator)((HtmlTextBlock)html).Generators["h3"]).FontStyle = FontStyles.Italic;

但我不知道如何使用这些,也不知道把它们放在哪里。有人能告诉我如何使用这些代码吗?

更新:因此,<mytoolkit:FixedHtmlTextBlock x:Name="pcd" Html="{Binding Content}" FontSize="24" Foreground="{StaticResource AppForegroundColor}" />在下面给出的资源字典中,存储在Views/DataTemplates/Post1Detail.xaml.中

<DataTemplate x:Name="Posts1DetailLayout">
    <Grid Margin="10,5,5,5">
        <ScrollViewer>
            <StackPanel>
                <mytoolkit:FixedHtmlTextBlock Html="{Binding Title}" FontSize="32" Foreground="{StaticResource AppForegroundColor}"/>
                <mytoolkit:FixedHtmlTextBlock x:Name="pcd" Html="{Binding Content}" FontSize="24"  Foreground="{StaticResource AppForegroundColor}" />
            </StackPanel>
        </ScrollViewer>
    </Grid>
</DataTemplate>

资源字典在Views/Posts.xaml中作为访问

<Grid x:Name="LayoutRoot" Background="{StaticResource AppBackgroundColor}">
     <phone:Pivot Name="Container" Grid.Row="0" Foreground="{StaticResource AppForegroundColor}" Background="{StaticResource AppBackground}" SelectionChanged="OnSelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True"
                TitleTemplate="{StaticResource AppPivotTitle}"
                HeaderTemplate="{StaticResource AppPivotHeader}"
                ItemTemplate="{StaticResource Posts1DetailLayout}"
                ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
    </phone:Pivot>
</Grid>

请注意,资源字典数据模板"Post1DetailLayout"正在ItemTemplate="{StaticResource Post1DetailLayout"} 中使用

在PostsDetail.xaml构造函数中,我尝试执行以下

using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using System.Windows.Navigation;
using System.Windows.Threading;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Net.NetworkInformation;
using Microsoft.Phone.Controls;
using MyToolkit.Paging;
using AppStudio.Data;
using AppStudio.Services;
using MyToolkit.Controls;
using MyToolkit.Controls.HtmlTextBlockImplementation.Generators;
using System.Windows.Resources;
using System.IO;

namespace AppStudio
{
    public partial class PostsDetail
    {
        private bool _isDeepLink = false;

    public PostsDetail()
    {
        InitializeComponent();
        pcd.Generators["h3"] = new ParagraphGenerator()
        {
            FontSize = 26,
        };
    }

我得到一个错误"名称pcd在当前上下文中不存在"。现在,我如何访问资源字典中的fixedhtml文本块名称并在PostDetail构造函数中使用它?

mytoolkit:FixedHtmlBlock更改样式,xaml

<mytoolkit:FixedHtmlTextBlock x:Name="YourHtmlBlock" Html="{Binding Content}" FontSize="24"  Foreground="{StaticResource AppForegroundColor}" />

YourHtmlBlock.Generators["p"] = new ParagraphGenerator()
{
//change properties here :)
};

如果您想更改更多内容,可以创建自定义ParagraphGenerator。