当前位置: 首页 > news >正文

企业自建网站海外广告联盟平台推广

企业自建网站,海外广告联盟平台推广,蚌埠市建设局网站,重庆免费注册推广网站前言 使用WPF 中的RichTextBox控件实现添加文本后自动滚动末尾。因为RichTextBox无法直接绑定数据&#xff0c;所以通过引用System.Windows.Interactivity实现&#xff08;System.Windows.Interactivity.WPF&#xff09; 代码 MainWindow.xaml <Window x:Class"WPF…

前言

使用WPF 中的RichTextBox控件实现添加文本后自动滚动末尾。因为RichTextBox无法直接绑定数据,所以通过引用System.Windows.Interactivity实现(System.Windows.Interactivity.WPF)

代码

MainWindow.xaml

<Window x:Class="WPF_MvvmDemo.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:behavior="clr-namespace:WPF_MvvmDemo" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><Grid.RowDefinitions><RowDefinition Height="*"/><RowDefinition Height="50"/></Grid.RowDefinitions><RichTextBox Name="OutputListBox" Grid.Row="0"  Margin="5" Background="#FFFFFF" Focusable="True" VerticalScrollBarVisibility="Auto"><!--数据绑定--><i:Interaction.Behaviors><behavior:RichTextBoxBehavior Document="{Binding RichTextContent, Mode=TwoWay}" /></i:Interaction.Behaviors><!--自动滚动--><i:Interaction.Triggers><i:EventTrigger EventName="TextChanged"><ei:CallMethodAction MethodName="ScrollToEnd" /></i:EventTrigger></i:Interaction.Triggers></RichTextBox><Button  Grid.Row="2" Width="150" Margin="5" HorizontalAlignment="Right"Command="{Binding AppendTextCommand}">AddText</Button></Grid>
</Window>

MainWindow

public partial class MainWindow : Window
{MainViewModel viewModel;public MainWindow(){InitializeComponent();viewModel=new MainViewModel();this.DataContext = viewModel;}
}

RelayCommand

public class RelayCommand : ICommand
{public Action<string> execute;public RelayCommand(Action<string> execute){this.execute = execute;}public event EventHandler? CanExecuteChanged;public bool CanExecute(object? parameter){return CanExecuteChanged!=null;}public void Execute(object? parameter){execute?.Invoke(parameter?.ToString());}
}

RichTextBoxBehavior

/// <summary>
///RichTextBox 的 Document 属性不是一个依赖属性(DependencyProperty),因此不能直接进行双向数据绑定。
///我们需要使用一种间接的方式来实现数据绑定。
///解决方案:
///使用 Behavior 来实现 RichTextBox 的数据绑定。Behavior 是一个附加行为,可以在 XAML 中使用,
///通过代码来实现复杂的行为逻辑。
/// </summary>
public class RichTextBoxBehavior : Behavior<RichTextBox>
{public static readonly DependencyProperty DocumentProperty =DependencyProperty.Register("Document", typeof(FlowDocument), typeof(RichTextBoxBehavior),new FrameworkPropertyMetadata(null, OnDocumentChanged));public FlowDocument Document{get { return (FlowDocument)GetValue(DocumentProperty); }set { SetValue(DocumentProperty, value); }}private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e){var behavior = d as RichTextBoxBehavior;if (behavior != null){behavior.UpdateRichTextBox((FlowDocument)e.NewValue);}}protected override void OnAttached(){base.OnAttached();AssociatedObject.Loaded += OnLoaded;AssociatedObject.TextChanged += OnTextChanged;}protected override void OnDetaching(){base.OnDetaching();AssociatedObject.Loaded -= OnLoaded;AssociatedObject.TextChanged -= OnTextChanged;}private void OnLoaded(object sender, RoutedEventArgs e){UpdateRichTextBox(Document);}private void OnTextChanged(object sender, TextChangedEventArgs e){Document = AssociatedObject.Document;}private void UpdateRichTextBox(FlowDocument document){if (document != null && AssociatedObject.Document != document){AssociatedObject.Document = document;}}
}

运行结果

在这里插入图片描述

http://www.yayakq.cn/news/902639/

相关文章:

  • 做网站如何分工学习网站建设论文
  • 山西商城网站建设网站建设怎么建设
  • 宝塔网站建设做的网站为什么图片看不了
  • php网站游客试用怎么做淘宝运营一般要学多久
  • 天津做网站的企业上海外包seo
  • 如何找到网站是谁做的2016最新wordpress模板下载
  • 书店网站建设定位及目标电子网站建设策划模板
  • 地产网站建设公司网站建设排名北京
  • 做论坛网站数据库需多大嘉祥网站建设多少钱
  • 南阳网站建站培训北京软件开发外包
  • 海外网络加速器免费宁波怎样优化关键词
  • 百度服务中心投诉北京网站优化方案
  • 高校网站如何建设论文网站素材
  • 学校网站维护怎么做WordPress自动发英文文章
  • 百度收录公司网站深圳注册公司地址有什么要求
  • 台州商务网站大连金州新区规划建设局网站
  • 付公司网站建设费用会计分录建设银行为啥重置不了密码
  • 中文域名有哪些网站天水网站制作公司
  • 企业网站备案号密码忘记嘉兴网站开发学校
  • 国外网站网站app做淘宝客怎么建网站
  • 成都大型商城网站建设网站续费收多少合适
  • 怎么做网站弄网盟php网站开发要学什么软件
  • 闲置物品交易网站怎么做的公司网站如何被百度收录
  • 深圳人社局官网泰州seo网络推广
  • 网站常用字号牡丹江商城网站开发设计
  • 太原哪里做网站门户网站建设工作室
  • 做网站head.htmwordpress链接形式
  • 网站开发是在电脑上打出来的资料么网站开发文献资料
  • 浙江省建设工程质量安全管理协会网站wordpress 页面栏目
  • wordpress中调用文章内容百度seo优化排名如何