C# WPF主题讨论区
有关C# WPF的问题都可以在这里给站长留言,站长定会及时回复
-
MaterialDesignInXaml Release下载地址:https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/releases
1年前 -
Github下载失败的朋友,我将该demo下载到了本站,地址:https://dotnet9.com/demoapp,最新版本3.0.1,里面有.net framework 4.72和.net core 3.0两个版:
1年前 -
今天在博客园看到一个WPF系列文章,有需要的同学可以点击跳转查看:https://www.cnblogs.com/Peter-Luo/category/1620030.html
1年前 -
站长您好,我是刚刚给您发消息问您TextBox的输入限制问题的码农01号,您说可以使用正则表达式,但是这个也是逐一添加在后台代码或者是xaml上吧?也就是跟TextBox一一对应的,我想有个能统一处理所有TextBox的办法。
例如:重写TextBox,但是网上很少资料,我看的也是云里雾里的。您有其他方案解决这个问题吗?
1年前 -
1、看看这篇文章呢:https://www.cnblogs.com/dhqy/p/8677227.html
步骤二:监测 TextBox 的 PreviewTextInput事件private void TextBox_PreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e)
{
Regex re = new Regex("[^A-F0-9]"); // 只允许输入大写字母A~F和数字0~9e.Handled = re.IsMatch(e.Text);
}注:e.Text为当前输入的单个字符,当该字符与正则表达式 re 匹配时 e.Handled = true,TextBox的TextInput事件被中断(输入终止)。遍历所有的TextBox,添加PreviewTextInput事件1年前 -
所以我在寻找更好的解决方案。想重写一个TextBox控件,然后自带限制输入效果,后面添加的时候也方便。但是技术知识不够,找不到相关资料,或者找到了也是云里雾里的···
1年前 -
1、MyTextBox.cs
继承TextBox:
using System.Text.RegularExpressions;
using System.Windows.Controls;
using System.Windows.Input;namespace MVVMTest
{
public class MyTextBox:TextBox
{
protected override void OnPreviewTextInput(TextCompositionEventArgs e)
{
Regex re = new Regex("[^A-F0-9]"); // 只允许输入大写字母A~F和数字0~9
e.Handled = re.IsMatch(e.Text);
}
}
}使用的地方:
2、引入自定义的TextBox命名空间:xmlns:local="clr-namespace:MVVMTest"
3、插入使用TextBox的地方:<local:MyTextBox/>1年前 -
可以了··感谢大佬,但就像名言当你解决这个Bug的时候,你就在写下一个Bug一样,我有使用MaterialDesign 的样式库,我在app.xaml里面是有引用资源的,但是这个重写的TextBox没有自动应用样式,如果我把原来的输入框大规模的进行替换,那工作量是不小的,有什么办法可以让它自动使用MaterialDesign 样式库的样式吗?
1年前 -
MyTextBox2.xaml:
<TextBox x:Class="MVVMTest.MyTextBox2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MVVMTest"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid></Grid>
</TextBox>MyTextBox2.xaml.cs:
using System.Text.RegularExpressions;
using System.Windows.Controls;
using System.Windows.Input;namespace MVVMTest
{
/// <summary>
/// MyTextBox2.xaml 的交互逻辑
/// </summary>
public partial class MyTextBox2 : TextBox
{
public MyTextBox2()
{
InitializeComponent();
}
protected override void OnPreviewTextInput(TextCompositionEventArgs e)
{
Regex re = new Regex("[^A-F0-9]"); // 只允许输入大写字母A~F和数字0~9
e.Handled = re.IsMatch(e.Text);
}
}
}1年前 -
太好了!可以了,感谢您,晚点给您赞助,感谢大佬!
1年前 -
站长,WPF自定义TextBox怎么让他保留2位小数呢?
我知道有个绑定数据源 StringFormat='n2'但是在定义控件里面还没指定数据源的时候要怎么实现显示保留2位小数呢
1年前 -
参考这篇文章呢:https://blog.csdn.net/zshuaihua/article/details/33342543?utm_source=blogkpcl3
//以下代码仅为示例,非全部代码,详细请查看下载地址提供的源码
private void tbInput_Validating(object sender, CancelEventArgs e)
{
string errorMsg;if (!IsNumberic(tbInput.Text.Trim(), out errorMsg))
{
e.Cancel = true;
tbInput.Select(0, tbInput.Text.Length);
this.errorProvider1.SetError(tbInput, errorMsg);
//Console.WriteLine("输入非法!!");
}
}#region 输入是否合法
public bool IsNumberic(string message, out string errorMsg)
{
//示例(非全部代码)
string temp = @"(^(\d(\.\d{2})?){1}$)";
Regex rex = new Regex(temp);if (rex.IsMatch(message))
{
//...
}
else
{
//...
}
}
#endregionpublic static bool IsSDC(string strSDC)
{
//...
}public static string ToDBC(string strSBC)
{
//...
}private void tbInput_Validated(object sender, EventArgs e)
{
//如果所有条件都满足的话,清除ErrorProvider中的错误信息。
errorProvider1.SetError(tbInput, "");
}private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//这里是为了确保关闭窗口功能不受影响
e.Cancel = false;
}1年前 -
站长,我又来啦,我现在有个需求,需要一个类似于导航条的控件,
像这种,我可以控制里面的内容以及到哪个点,MD好像没有这种样式的控件,大佬有推荐吗?
1年前 -
Panuon.UI.Silver:https://dotnet9.com/2285.html
用的TabControl,参考效果如下,你的这种设计你要修改下样式:
<TabControl pu:TabControlHelper.ItemHeight="35"
pu:TabControlHelper.ItemBackground="#3E3E3E"
pu:TabControlHelper.SelectedBackground="#888888"
pu:TabControlHelper.SelectedForeground="White"
pu:TabControlHelper.TabControlStyle="Card">
<pu:TabControlHelper.ExtendControl>
<Button Content=""
FontFamily="{DynamicResource FontAwesome}"
Width="35"/>
</pu:TabControlHelper.ExtendControl>
<TabItem Header="Level 1"
Foreground="White"
Width="100"/>
<TabItem Header="Level 2"
Foreground="White"
Width="100" />
<TabItem Header="Level 3"
Foreground="White"
Width="100" />
</TabControl>具体怎么使用,添加本站技术交流群,或者Panuon.UI.Silver技术交流群
1年前 -
站长你好,我在DataGrid表格绑定了下拉框ComboBox,下拉框我想绑定传过来的数据,之前下拉框都是直接绑定它的DisplayMemberPath和SelectedValuePath,但现在直接获取不了ComboBox的Name,我数据是DataTable,这要怎么绑定呢
7个月前