Как разместить мои элементы управления на страницах мастера? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую WPF Toolkit из xceed , потому что я хочу создать мастер в своем приложении WPF. Это казалось хорошим вариантом. Их пример мастера работает, но я не уверен, как добавить свои собственные элементы управления на страницу мастера. Документация довольно ограничена и показывает только то, как изменить представление мастера, а не поведение.

Когда я перемещаю определения элементов управления в файле .xaml в мастер, он говорит, что Wizard should only contain WizardPages. Это то, что мне нужно сделать в коде вместо этого? Вы могли догадаться, что это мой первый опыт работы с WPF.

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

<Window xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:myApp"
    xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" 
    x:Class="myApp.MainWindow"
    mc:Ignorable="d"
    Title="MainWindow" Height="800" Width="1000" MinWidth="5">
<Window.BorderBrush>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="LightGray" Offset="0"/>
        <GradientStop Color="White" Offset="1"/>
    </LinearGradientBrush>
</Window.BorderBrush>
<Grid Margin="10">

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="767*"/>
        <ColumnDefinition Width="199*"/>
        <ColumnDefinition Width="6*"/>
    </Grid.ColumnDefinitions>
    <xctk:Wizard FinishButtonClosesWindow="True">
        <xctk:WizardPage x:Name="IntroPage" 
                               Title="Welcome to my Wizard"
                               Description="This Wizard will walk you though how to do something." />
        <xctk:WizardPage x:Name="Page1" PageType="Interior"
                               Title="Page 1"
                               Description="This is the first page in the process."
                               NextPage="{Binding ElementName=Page2}"
                               PreviousPage="{Binding ElementName=IntroPage}"/>

        <xctk:WizardPage x:Name="Page2" PageType="Interior"
                               Title="Page 2"
                               Description="This is the second page in the process"/>
        <xctk:WizardPage x:Name="LastPage" PageType="Interior"
                               Title="Last Page"
                               Description="This is the last page in the process"
                               CanFinish="True"/>
    </xctk:Wizard> 
    <Border Background="GhostWhite" BorderBrush="Silver" BorderThickness="1" CornerRadius="3,3,3,3" Grid.Column="1">
        <StackPanel Margin="10">
            <Button Content="Button 1"/>                
            <Button Content="Button 2"/>
            <TextBox Controls:TextBoxHelper.Watermark="This is a textbox" />
            <Controls:ToggleSwitch Header="Click me" />
        </StackPanel>
    </Border>  
</Grid>   

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете поместить элемент Border внутри элемента <xctk:WizardPage>, например ::

<xctk:WizardPage x:Name="LastPage" PageType="Interior"
                Title="Last Page"
                Description="This is the last page in the process"
                CanFinish="True">

    <Border Background="GhostWhite" BorderBrush="Silver" BorderThickness="1" CornerRadius="3,3,3,3" Grid.Column="1">
        <StackPanel Margin="10">
            <Button Content="Button 1"/>
            <Button Content="Button 2"/>
            <TextBox />
        </StackPanel>
    </Border>

</xctk:WizardPage>
...