0

ここでWPFドキュメントの初心者。

WPF アプリケーションで静的コンテンツをページごとに表示する可能性を探っています。スライドを前後に移動できる PowerPoint プレゼンテーションによく似ています。

私の最初の調査から、私は FlowDocument が私が探していたものだと思っていましたが、次と前にナビゲートできる複数のページを表示する必要がある間、それに固執しました。

FlowDocument を使用して正しい方法を使用している場合は、誰でも私を案内してもらえますか?複数のページ (またはドキュメント) を作成するにはどうすればよいですか?

私にとって単一のページとして機能しているものは次のとおりです。

<FlowDocumentReader  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
        <FlowDocument PagePadding="0" ColumnWidth="999999">
            <Paragraph  Style="{StaticResource headerText}" TextAlignment="Center" >
                <Bold>AGENDA</Bold>
            </Paragraph>
            <List StartIndex="1" MarkerStyle="Decimal" Style="{StaticResource normalText}" MarkerOffset="20" TextAlignment="Left">
                <ListItem>
                    <Paragraph>XAML</Paragraph>
                </ListItem>
                <ListItem>
                    <Paragraph>Layouts in WPF</Paragraph>
                    <List StartIndex="1" Margin="0"  MarkerStyle="Decimal" Style="{StaticResource subText}" MarkerOffset="20" TextAlignment="Left">
                        <ListItem>
                            <Paragraph>Controls</Paragraph>
                        </ListItem>
                        <ListItem>
                            <Paragraph>Styles</Paragraph>
                        </ListItem>
                        <ListItem>
                            <Paragraph>Templates</Paragraph>
                        </ListItem>
                    </List>
                </ListItem>
                <ListItem>
                    <Paragraph>Binding</Paragraph>
                    <List StartIndex="1" Margin="0" MarkerStyle="Decimal" Style="{StaticResource subText}" MarkerOffset="20" TextAlignment="Left">
                        <ListItem>
                            <Paragraph>DependencyObject</Paragraph>
                        </ListItem>
                        <ListItem>
                            <Paragraph>DependencyProperty</Paragraph>
                        </ListItem>
                    </List>
                </ListItem>
            </List>
        </FlowDocument>
    </FlowDocumentReader>
4

1 に答える 1

2

これを行う最も簡単な方法は、ビューモデル内の「CurrentPage」変数にバインドするコンテンツ コントロールを用意することだと思います。すなわち

private UserControl _currentpage
public UserControl CurrentPage { 
    get
    {
        return _currentpage;
    }
    set
    {
       if (PropertyChanged != null)
           PropertyChanged(this, new PropertyChangedEventArgs("CurrentPage"));
    } 
}

public ViewModel()
{
    CurrentPage = new FirstPage();
}

private void NextPageExecuted(object parameter)
{
     //Logic that picks the next page from a set of pages
}

private void PrevPageExecuted(object parameter)
{
     //Logic that picks the previous page from a set of pages
}

次に、xaml に一般的なコンテンツ コントロールを配置します。

<ContentControl Content="{Binding CurrentPage}" />

次に、表示する各ページを定義するユーザー コントロールを定義するだけです。FirstPage は、そこに貼り付けたコードである可能性があります。

于 2012-06-20T14:08:15.547 に答える