• 大小: 17.51M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2020-12-26
  • 语言: C#
  • 标签: wpf  dLL  界面  cs  函数  

资源简介

都是一些基本简单的常用界面函数,全部cs文件,无DLL。
按照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个文件信息

评论

共有 条评论