WPF GroupBox Expander ExpandDirection="Down" Expander.HeaderTemplate Expander.ContentTemplate

//xaml
<Window x:Class="WpfApp43.MainWindow"
        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:WpfApp43"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <StackPanel>
        <GroupBox Margin="10">
            <GroupBox.Header>
                <StackPanel Orientation="Horizontal">
                    <Image Source="pack://application:,,,/cl3.jpg" Height="10" Width="10"/>
                    <TextBlock Text="Tea Options" Margin="6,0,0,0"/>
                </StackPanel>
            </GroupBox.Header>
            <StackPanel>
                <CheckBox Margin="4">Sugar</CheckBox>
                <CheckBox Margin="4">Mint</CheckBox>
                <CheckBox Margin="4">Milk</CheckBox>
                <CheckBox Margin="4">Cinnnamon</CheckBox>
            </StackPanel>
        </GroupBox>
        <Expander Margin="10" x:Name="_bookInfo" ExpandDirection="Down">
            <Expander.HeaderTemplate>
                <DataTemplate>
                    <Border BorderBrush="Blue" BorderThickness="1"
                            Padding="4">
                        <TextBlock Text="{Binding Name,StringFormat=Book:{0}}"/>
                    </Border>
                </DataTemplate>
            </Expander.HeaderTemplate>
            <Expander.ContentTemplate>
                <DataTemplate>
                    <Border BorderBrush="Blue" BorderThickness="2" Padding="4">
                        <StackPanel>
                            <TextBlock Text="{Binding Name,StringFormat=Name:{0}}"/>
                            <TextBlock Text="{Binding Author,StringFormat=Author:{0}}"/>
                            <TextBlock Text="{Binding YearPublished,StringFormat=Published:{0}}"/>
                        </StackPanel>
                    </Border>
                </DataTemplate>
            </Expander.ContentTemplate>
        </Expander>
    </StackPanel>
    
</Window>


//cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp43
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            SetBookInfo();
        }

        private void SetBookInfo()
        {
            _bookInfo.Content = _bookInfo.Header = new Book
            {
                Name = "Windows Internals",
                Author = "Mark Russinovich",
                YearPublished = 2009
            };
        }
    }

    internal class Book
    {
        public string Name { get; set; }
        public string Author { get; set; }
        public int YearPublished { get; set; }
    }
}

 

posted @ 2024-04-07 23:44  FredGrit  阅读(8)  评论(0编辑  收藏  举报