资源简介
按照winform的编写方式写的代码,基本不写xaml文件,很容易看清楚。
包括:窗体无边框(窗体)、 FontAwesome字体图标、rtf转图像、动画移动控件、控件翻转、淡入淡出、控件位置获取、圆角图像、滚动条等等,
在cs文件中对照查看。使用.net 4.61及以下,不支持4.7。
基本按照一个留言板模式写的Demo,登陆、留言、用户信息等基本都有,因为是演示,没有搞得那么精致了。
用户信息在UserData.mdb,
登陆名:1001至1029,密码123456
图像及设计模式是照搬来winform的,开始仔细学习wpf,有错误或繁琐,自行修正,仅供参考
以下内容自行修改
bug修改:RichTextBox输入内容转换图像,搞成嵌入winform组件了,不科学。
修改如下:
Wpf 的RichTextBox(rich1) 插入图像:
private void Button_Click(object sender, RoutedEventArgs e)
{
string filepath = "";
OpenFileDialog openfilejpg = new OpenFileDialog();
openfilejpg.Filter = "png图片(*.png)|*.png|gif图片(*.gif)|*.gif";
openfilejpg.FilterIndex = 0;
openfilejpg.RestoreDirectory = true;
openfilejpg.Multiselect = false;
if (openfilejpg.ShowDialog() == true)
{
filepath = openfilejpg.FileName;
System.Windows.Controls.Image img = new System.Windows.Controls.Image();
BitmapImage bImg = new BitmapImage();
img.IsEnabled = true;
bImg.BeginInit();
bImg.UriSource = new Uri(filepath, UriKind.Relative);
bImg.EndInit();
img.Width = 28;
img.Height = 28;
img.Source = bImg;
img.UseLayoutRounding = true;
new InlineUIContainer(img, rich1.Selection.Start);
}
}
然后顺序取得里面的全部图像放入到List里面
public class imglist
{
public Image image;
public imglist(Image img)
{
image = img;
}
}
public static List<imglist> ImageList = new List<imglist>();
public static void ResizeRtbImages(RichTextBox rtb)
{
foreach (Block block in rtb.Document.Blocks)
{
if (block is Paragraph)
{
Paragraph paragraph = (Paragraph)block;
foreach (Inline inline in paragraph.Inlines)
{
if (inline is InlineUIContainer)
{
InlineUIContainer uiContainer = (InlineUIContainer)inline;
if (uiContainer.Child is Image)
{
Image image = (Image)uiContainer.Child;
ImageList.Add(new imglist(image));
}
}
}
}
}
}
转换为xaml
public static string ToXaml(RichTextBox richTextBox)
{
string xaml = string.Empty;
TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
using (MemoryStream ms = new MemoryStream())
{
textRange.Save(ms, System.Windows.DataFormats.Xaml);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
xaml = sr.ReadToEnd();
}
return xaml;
}
再替换字符串
string tmp = ToXaml(rich1);
int b = tmp.IndexOf("<Paragraph>") 11;
int t = tmp.LastIndexOf("</Paragraph>");
string tmp1 = tmp.Substring(b, t-b);
rich2.AppendText("\r\r\r" tmp1);
string tmp2 = tmp1.Replace("<Run> </Run>", "▣"). // 特殊符号
Replace("</Paragraph><Paragraph>", "\r").
Replace("<Run xml:lang=\"zh-cn\">", "").
Replace("</Run>", "");
最后画文字到一幅图像,遇到“特殊符号“顺序画ImageList[n].image就可以了
生成对话框需计算文字宽度等,参考原文件
自行修改,修改后可以用.net 4.7
代码片段和文件信息
using System.Windows;
namespace Demo
{
///
/// App.xaml 的交互逻辑
///
public partial class App : Application
{
protected override void onstartup(StartupEventArgs e)
{
System_Global.User_Database();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16844 2019-09-08 10:20 函数说明.docx
文件 3194 2019-09-07 19:28 exe\11.png
文件 1263104 2019-09-08 10:37 exe\Demo.exe
文件 189 2019-09-03 08:53 exe\Demo.exe.config
文件 230912 2019-09-08 10:37 exe\Demo.pdb
文件 1318 2018-04-04 09:48 exe\Res_File\1-min.png
文件 1310 2018-04-04 09:48 exe\Res_File\10-min.png
文件 1342 2018-04-04 09:48 exe\Res_File\11-min.png
文件 1384 2018-04-04 09:48 exe\Res_File\12-min.png
文件 1318 2018-04-04 09:48 exe\Res_File\13-min.png
文件 1368 2018-04-04 09:48 exe\Res_File\14-min.png
文件 1312 2018-04-04 09:48 exe\Res_File\15-min.png
文件 1356 2018-04-04 09:48 exe\Res_File\16-min.png
文件 1344 2018-04-04 09:48 exe\Res_File\17-min.png
文件 1389 2018-04-04 09:48 exe\Res_File\18-min.png
文件 1258 2018-04-04 09:48 exe\Res_File\19-min.png
文件 1289 2018-04-04 09:47 exe\Res_File\2-min.png
文件 1322 2018-04-04 09:48 exe\Res_File\20-min.png
文件 1344 2018-04-04 09:48 exe\Res_File\21-min.png
文件 1374 2018-04-04 09:48 exe\Res_File\22-min.png
文件 1415 2018-04-04 09:48 exe\Res_File\23-min.png
文件 1372 2018-04-04 09:48 exe\Res_File\24-min.png
文件 1311 2018-04-04 09:48 exe\Res_File\25-min.png
文件 1375 2018-04-04 09:48 exe\Res_File\26-min.png
文件 1298 2018-04-04 09:48 exe\Res_File\27-min.png
文件 1357 2018-04-04 09:48 exe\Res_File\28-min.png
文件 1352 2018-04-04 09:48 exe\Res_File\29-min.png
文件 1354 2018-04-04 09:47 exe\Res_File\3-min.png
文件 1350 2018-04-04 09:47 exe\Res_File\30-min.png
文件 1328 2018-04-04 09:47 exe\Res_File\4-min.png
............此处省略256个文件信息
相关资源
- 第二代Kinect WPF开发从入门到精通资料
- WPF21个优秀项目及源码
- SciChart控件破解方法见包内
- 上位机与PLC通讯dll.zip
- WPF开发框架
- DevExpress控件forC#-8.2
- wpf特效轮播图
- WPF做的监控程序
- wpf 图片滑动效果
- Telerik_UI_for_WPF破解版
- GDAL编译后的C# dll,可以用于vs2017
- Telerik_UI_for_WPF_2019_1_116_Dev.msi
- WPF编程宝典2012源码和书(全)
- 深入浅出WPF刘铁猛 重新整理书签 带源
- 图书管理系统c#NET平台上使用窗体和控
- TeeChart for .NET 2017 Evaluation 4.1.2017.031
- WPF程序设计指南完整PDF高清版
- C# 打印PDF的dll Spire.PDF5.4
- Telerik UI for WPF 2018_1_116
- Krypton.zip
- yolov3 dll c# 调用
- 深入浅出WPF 重新整理目录,带源码
- Pro WPF 4.5 in C# Pro WPF系列第四版 英文书
- C#操作OPC包含KepServer4.5软件 OPCAutomat
- 大型综合管理ERP源码 大型ERP源码 bs框
- WPF学习书籍pdf《葵花宝典_WPF自学手册
- Telerik_UI_for_WPF_Documentation
- WPF编程宝典C#2012 第4版(包含源码)
- WPF编程宝典 第四版
- c# WPF 动态曲线显示
评论
共有 条评论