WPF 视图导航

<Window x:Class="ViewExam.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded_1">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>             
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <TextBlock>Model Number</TextBlock>
            <TextBox Text="{Binding Path=ModelNumber}" Grid.Column="1"></TextBox>
            <TextBlock Grid.Row="1">Model Name</TextBlock>
            <TextBox Text="{Binding Path=ModelName}" Grid.Column="1" Grid.Row="1"></TextBox>
            <TextBlock Grid.Row="2">Unit Cost</TextBlock>
            <TextBox Text="{Binding Path=UnitCost}" Grid.Column="1" Grid.Row="2"></TextBox>
            <TextBlock Grid.Row="3">Description</TextBlock>
            <TextBox Text="{Binding Path=Description}" TextWrapping="Wrap"  Grid.Row="5" Grid.ColumnSpan="2"></TextBox>
        </Grid>
        <StackPanel Grid.Row="1" Orientation="Horizontal">
            <Button Name="btnPrevious" Click="btnPrevious_Click_1">previous</Button>
            <Label x:Name="lblPosition" Width="400"></Label>
            <Button Name="btnNext" Click="btnNext_Click_1">Next</Button>
        </StackPanel>
    </Grid>
</Window>


using DBAccess;

using System;
using System.Collections.Generic;
using System.Linq;
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 ViewExam
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }


        private ListCollectionView view;


        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {
            ICollection<Product> products = StoreDB.GetProducts();
            this.DataContext = products;
            view = (ListCollectionView)CollectionViewSource.GetDefaultView(products);


            view.CurrentChanged += view_CurrentChanged;

            view_CurrentChanged(this, null);
            
        }


        void view_CurrentChanged(object sender, EventArgs e)
        {
            lblPosition.Content = "Record " + (view.CurrentPosition + 1).ToString() + " of " + view.Count.ToString();
            btnPrevious.IsEnabled = view.CurrentPosition > 0;
            btnNext.IsEnabled = view.CurrentPosition < view.Count - 1;
        }


        private void btnPrevious_Click_1(object sender, RoutedEventArgs e)
        {
            view.MoveCurrentToPrevious();
        }


        private void btnNext_Click_1(object sender, RoutedEventArgs e)
        {
            view.MoveCurrentToNext();
        }
    }
}

转载于:https://www.cnblogs.com/dxmfans/p/9434671.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WPF Bootstrap导航是一种通过使用WPF(Windows Presentation Foundation)技术和Bootstrap框架来创建导航菜单的方式。WPF是一种用于开发Windows应用程序的UI框架,而Bootstrap是一种流行的HTML,CSS和JavaScript框架,用于构建响应式和美观的网页设计。 在WPF Bootstrap导航中,我们可以结合WPF的强大功能和Bootstrap的灵活性,轻松创建出具有良好用户体验的导航菜单。这种导航菜单通常具有可自定义的外观样式和交互效果,能够展示丰富的内容和导航选项。 使用WPF Bootstrap导航有以下几个步骤: 1. 引入Bootstrap框架:首先,在WPF应用程序中,需要导入Bootstrap的相关CSS和JavaScript文件,以便使用其样式和功能。 2. 创建导航控件:接下来,通过使用WPF的控件和布局功能,创建一个导航控件来容纳导航菜单的各个选项。可以使用面板控件,如StackPanel或Grid来布局这些选项。 3. 设置样式和交互效果:与Bootstrap一样,WPF样式的定义和修改非常灵活。可以使用WPF的样式和触发器功能来自定义导航菜单的外观和交互行为。例如,在鼠标悬停或选中菜单项时改变其背景颜色或添加动画效果。 4. 增加导航选项:根据实际需求,向导航菜单中添加所需的导航选项。可以使用WPF的按钮、菜单项或超链接等控件来实现。 5. 导航功能实现:最后,为每个导航选项添加导航功能。这可以通过WPF中的命令功能来实现,例如,通过指定导航选项与具体功能方法的绑定。 总之,WPF Bootstrap导航是一种利用WPF和Bootstrap技术结合的方式,能够轻松创建出具有强大功能和美观外观的导航菜单。无论是用于桌面应用还是Web应用,都能提供良好的用户导航体验。 ### 回答2: WPF Bootstrap 导航是一种在WPF 应用程序中使用Bootstrap 框架进行页面导航的技术。Bootstrap 是一个开源的前端框架,提供了丰富的页面组件和样式,可以快速构建美观、响应式的网页。 在 WPF 应用程序中,我们可以借助 MahApps.Metro 库来集成Bootstrap和WPF,并实现导航功能。MahApps.Metro是一个基于WPF的开源库,提供了与Boostrap类似的外观和样式。 使用 WPF Bootstrap 导航,我们可以轻松地创建具有现代化外观和导航功能的应用程序。首先,需要导入 MahApps.Metro 库和相关资源。然后,我们可以使用MetroWindow 控件作为主窗口的基类。MetroWindow 提供了类似标题栏、窗口外观等功能。 为了实现页面导航,我们可以使用 Frame 或者 ContentControl 控件。Frame 控件可以加载具有导航功能的页面,而 ContentControl 控件可以在同一个页面内部切换不同的内容。 在具体的页面中,我们可以使用 MetroTabItem 控件来创建导航标签,每个标签对应一个页面。当用户点击导航标签时,可以切换到对应的页面。 此外,WPF Bootstrap 导航还可以集成其他功能,例如侧边栏菜单、折叠式菜单、模态窗口等。这些功能可以提供更好的用户体验,使得应用程序更具吸引力。 总之,WPF Bootstrap 导航是一种使用Bootstrap框架和MahApps.Metro库实现页面导航的技术。它能够帮助开发人员快速构建现代化外观和具备导航功能的WPF应用程序。 ### 回答3: WPF Bootstrap是一个用于创建富客户端应用程序的开发框架,它结合了WPF(Windows Presentation Foundation)和Bootstrap(前端框架)的特性和优势。而导航功能是WPF Bootstrap框架中的一个重要组成部分。 导航是指在应用程序中切换不同页面或视图的过程。WPF Bootstrap框架通过导航功能,能够帮助开发者实现在应用程序中高效地管理和切换页面。其中,导航功能主要包括页面导航导航栏、导航前进后退按钮以及导航过程中的页面传递和参数传递等。 在WPF Bootstrap框架中,导航通常通过页面或视图导航器来实现。开发者可以通过配置导航器来定义页面之间的导航关系。导航栏是一种常见的页面导航方式,它通常位于应用程序的顶部或侧边,提供了切换页面的菜单或按钮。通过导航栏,用户可以在不同页面之间自由切换,并且能够清晰地看到当前所处的页面。 导航前进后退按钮是另一种常见的导航方式,它通常位于页面底部,用于在已浏览的页面历史记录中进行前进和后退操作。通过导航前进后退按钮,用户可以方便地回退到之前浏览过的页面。 此外,在页面导航过程中,WPF Bootstrap框架还支持页面之间的数据传递和参数传递。开发者可以在页面之间传递各种类型的数据,以满足应用程序的需求。例如,在导航到新页面时,可以将上一个页面的选定项或用户输入的数据传递给新页面进行展示或处理。 综上所述,WPF Bootstrap导航功能提供了丰富的页面导航方式和灵活的数据传递机制,帮助开发者实现优雅的界面跳转和页面之间的交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值