首页 > 其他分享 >WPF ListBoxItem ControlTemplate

WPF ListBoxItem ControlTemplate

时间:2025-01-12 17:45:14浏览次数:1  
标签:tmr Windows System Elapsed ListBoxItem ControlTemplate using WPF MainWindow

<Window x:Class="WpfApp136.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:WpfApp136"
        WindowState="Maximized"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <Style TargetType="ListBoxItem">
            <Setter Property="FontSize" Value="50"/>
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
            <Setter Property="VerticalAlignment" Value="Center"/>            
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
                        <Border Name="border"
                                Background="{TemplateBinding Background}"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                BorderThickness="2"                                
                                Padding="5"
                                SnapsToDevicePixels="True"
                                Height="100">
                            <ContentPresenter/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter TargetName="border"
                                        Property="Background"
                                        Value="Cyan"/>
                                <Setter TargetName="border"
                                        Property="BorderBrush"
                                        Value="Black"/>
                                <Setter TargetName="border"
                                        Property="Height"
                                        Value="240"/>
                                <Setter Property="FontSize"
                                        Value="100"/>
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="border"
                                        Property="Background"
                                        Value="Red"/>
                                <Setter TargetName="border"
                                        Property="Height"
                                        Value="200"/>
                                <Setter TargetName="border"
                                        Property="BorderBrush"
                                        Value="Yellow"/>
                                <Setter TargetName="border"
                                        Property="BorderThickness"
                                        Value="10"/>
                                <Setter Property="FontSize"
                                        Value="80"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <ListBox x:Name="lbx"/>
    </Grid>
</Window>



//cs
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 WpfApp136
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        int idx = 0;
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }

        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            System.Timers.Timer tmr = new System.Timers.Timer();
            tmr.Interval = 1000;
            tmr.Elapsed += Tmr_Elapsed;
            tmr.Start();
        }

        private void Tmr_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Application.Current?.Dispatcher.BeginInvoke(new Action(() =>
            {
                lbx.Items.Add($"{++idx},{Guid.NewGuid().ToString("N")}");
            }));            
        }
    }
}

 

 

 

 

标签:tmr,Windows,System,Elapsed,ListBoxItem,ControlTemplate,using,WPF,MainWindow
From: https://www.cnblogs.com/Fred1987/p/18667112

相关文章

  • wpf mvvm(prism)
     mainwindow.xml.cspublicpartialclassMainWindow:MetroWindow{privatereadonlyIRegionManagerregionManager;publicMainWindow(IRegionManagerregionManager){InitializeComponent();this.regionManager=regionMana......
  • wpf 打包成单文件
     FolderProfile.pubxml<Project><PropertyGroup><TargetFramework>net6.0-windows7.0</TargetFramework><PublishSingleFile>true</PublishSingleFile> <Configuration>Release</Configuration> <I......
  • WPF 怎么利用behavior优雅的给一个Datagrid添加一个全选的功能
    前言:我在迁移旧项目代码的时候发现别人写很多界面都涉及到一个DataGrid的全选,但是每个都写的很混乱,现在刚好空闲下来,写一个博客,给部分可能不太会写这个的同学讲一下,怎么实现全选功能,并且可以在任何项目里面复用这个功能。先准备一个Datagrid,我们给这个DataGrid取名为dg1。......
  • WPF刮刮乐
    WPF刮刮乐<Windowx:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.c......
  • Rubyer-WPF:打造优雅、精致的 WPF 用户界面
    在桌面应用开发领域,WPF(WindowsPresentationFoundation)凭借其强大的UI设计能力和丰富的功能,始终是开发者们青睐的工具之一。今天,我将为大家介绍一款专注于WPFUI设计的优秀项目——Rubyer-WPF,它将帮助开发者打造更加优雅、美观的用户界面。项目简介Rubyer-WPF 是由开发......
  • Rubyer-WPF:打造优雅、精致的 WPF 用户界面
    这篇文章可以通过一些结构性的调整和文字优化,使得内容更具吸引力和流畅感。以下是改进后的版本:Rubyer-WPF:打造优雅、精致的WPF用户界面在桌面应用开发领域,WPF(WindowsPresentationFoundation)凭借其强大的UI设计能力和丰富的功能,始终是开发者们青睐的工具之一。今天,我将为......
  • WPF页面中将一个控件的宽度绑定到其父级用户控件的实际宽度
    该实际场景比较常见于,当存在多个用户控件页面拼成一个窗体,因为实际控件对应窗体的宽度并不能确定,也不是那种能指定的宽度或者高度,比如窗体分导航区域和内容区域,左侧导航区域可以直接指定宽度,而右侧内容区域则是使用Auto或者*的宽度。在WPF中,尝试将一个控件的宽度绑定到其父级用户......
  • 深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器
    一、ScottPlot.WPF简介ScottPlot.WPF是基于ScottPlot绘图库专门为WindowsPresentationFoundation(WPF)框架量身定制的强大绘图组件。它无缝集成到WPF应用程序中,为开发者提供了一种简洁、高效的方式来可视化数据,无论是科学研究中的实验数据展示、金融领域的行情走势......
  • C# WPF Material DesignThemes 5.0 命名规则改变后导致找不到资源
    MaterialDesignInXAML库从5.0.0版本开始的命名规则变化,使用新的ResourceDictionary时遇到的themes/materialdesigntheme.defaults.xaml找不到.  原本在App.xaml中定义如下:<ResourceDictionary.MergedDictionaries><ResourceDictionarySource="pack://applicatio......
  • C#+ WPF 实现蓝牙转WIFI计步上位机
    前言一个WIFI上位机,接收底层MPU6050数据,途中转蓝牙从机透传,到蓝牙主机直连WIFI,PC端UDP通信,实现三轴加速度数据传送和计步功能。项目介绍本项目基于.NET平台,使用WPF开发了一个应用程序,用于实现MPU6050传感器数据从蓝牙模块传输到主机,并通过WiFi以UDP协议接收这些数据并进行可视......