mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-06 09:40:50 +08:00
项目结构调整
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace AIStudio.Wpf.Mind.Controls
|
||||
{
|
||||
[TemplatePart(Name = PART_OpenButton, Type = typeof(Button))]
|
||||
public class OpenFileTextBox : TextBox
|
||||
{
|
||||
private const string PART_OpenButton = "PART_OpenButton";
|
||||
private Button _openButton;
|
||||
|
||||
static OpenFileTextBox()
|
||||
{
|
||||
DefaultStyleKeyProperty.OverrideMetadata(typeof(OpenFileTextBox), new FrameworkPropertyMetadata(typeof(OpenFileTextBox)));
|
||||
}
|
||||
|
||||
/// <summary>Identifies the <see cref="Filter"/> dependency property.</summary>
|
||||
public static readonly DependencyProperty FilterProperty
|
||||
= DependencyProperty.Register(nameof(Filter), typeof(string), typeof(OpenFileTextBox), new UIPropertyMetadata("图像文件(*.bmp, *.jpg)|*.bmp;*.jpg|所有文件(*.*)|*.*"));
|
||||
|
||||
/// <summary>
|
||||
/// Whether or not the "popup" menu for this control is currently open
|
||||
/// </summary>
|
||||
public string Filter
|
||||
{
|
||||
get => (string)this.GetValue(FilterProperty);
|
||||
set => this.SetValue(FilterProperty, (string)value);
|
||||
}
|
||||
|
||||
public override void OnApplyTemplate()
|
||||
{
|
||||
base.OnApplyTemplate();
|
||||
|
||||
if (_openButton != null)
|
||||
{
|
||||
_openButton.Click -= _openButton_Click;
|
||||
}
|
||||
|
||||
_openButton = this.Template.FindName(PART_OpenButton, this) as Button;
|
||||
|
||||
if (_openButton != null)
|
||||
{
|
||||
_openButton.Click += _openButton_Click;
|
||||
}
|
||||
}
|
||||
|
||||
private void _openButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
OpenFileDialog fd = new OpenFileDialog();
|
||||
fd.Title = "请选择文件";
|
||||
fd.Filter = Filter;
|
||||
fd.FileName = Text?.Trim();
|
||||
if (fd.ShowDialog() == true)
|
||||
{
|
||||
SetValue(TextProperty, fd.FileName);
|
||||
}
|
||||
//this.Focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user