DatePicker 控件日期格式化,可以在App.xaml.cs中添加下面代码

方法一 不推荐:

Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();

Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";

方法二:

I have solved this problem with a help of this code. Hope it will help you all as well.

<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox"
Text="{Binding Path=SelectedDate, StringFormat='dd MMM yyyy',
RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
方法三:
Converter class:
public class DateFormat : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null) return null;
return ((DateTime)value).ToString("dd-MMM-yyyy");
} public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
} WPF tag
<DatePicker Grid.Column="3" SelectedDate="{Binding DateProperty, Converter={StaticResource DateFormat}}" Margin="5"/>

FileHelper.cs

#region 01.读取文件方法 —— static string ReadFile(string path)
/// <summary>
/// 读取文件方法
/// </summary>
/// <param name="path">路径</param>
/// <returns>内容字符串</returns>
/// <exception cref="ArgumentNullException">路径为空</exception>
public static string ReadFile(string path)
{
#region # 验证参数

if (string.IsNullOrWhiteSpace(path))
{
throw new ArgumentNullException(nameof(path), @"路径不可为空!");
}

#endregion

StreamReader reader = null;

try
{
reader = new StreamReader(path, Encoding.UTF8);
string content = reader.ReadToEnd();
return content;
}
finally
{
reader?.Dispose();
}
}
#endregion

#region 02.写入文件方法 —— static void WriteFile(string path, string content)
/// <summary>
/// 写入文件方法
/// </summary>
/// <param name="path">路径</param>
/// <param name="content">内容</param>
/// <param name="append">是否附加</param>
/// <exception cref="ArgumentNullException">路径为空</exception>
public static void WriteFile(string path, string content, bool append = false)
{
#region # 验证参数

if (string.IsNullOrWhiteSpace(path))
{
throw new ArgumentNullException(nameof(path), "路径不可为空!");
}

#endregion

FileInfo file = new FileInfo(path);
StreamWriter writer = null;

if (file.Exists && !append)
{
file.Delete();
}
try
{
//获取文件目录并判断是否存在
string directory = Path.GetDirectoryName(path);

if (string.IsNullOrEmpty(directory))
{
throw new ArgumentNullException(nameof(path), "目录不可为空!");
}
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}

writer = append ? file.AppendText() : new StreamWriter(path, false, Encoding.UTF8);
writer.Write(content);
}
finally
{
writer?.Dispose();
}
}
#endregion

JsonHelper.cs

/// <summary>
/// JSON辅助操作类
/// </summary>
public static class JsonHelper
{
/// <summary>
/// 处理Json的时间格式为正常格式
/// </summary>
public static string JsonDateTimeFormat(string json)
{
json = Regex.Replace(json,
@"\\/Date\((\d+)\)\\/",
match =>
{
var dt = new DateTime(1970, 1, 1);
dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
dt = dt.ToLocalTime();
return dt.ToString("yyyy-MM-dd HH:mm:ss.fff");
});
return json;
}

/// <summary>
/// 把对象序列化成Json字符串格式
/// </summary>
/// <param name="object"></param>
/// <returns></returns>
public static string ToJson(object @object)
{
var json = JsonConvert.SerializeObject(@object);
return JsonDateTimeFormat(json);
}

/// <summary>
/// 把Json字符串转换为强类型对象
/// </summary>
public static T FromJson<T>(string json)
{
json = JsonDateTimeFormat(json);
return JsonConvert.DeserializeObject<T>(json);
}
}

WPF下载文件

WPF下载远程文件,并显示进度条和百分比

 

WPF下载远程文件,并显示进度条和百分比

1、xaml

<ProgressBar HorizontalAlignment="Left" Height="10" Margin="96,104,0,0" Name="pbDown" VerticalAlignment="Top" Width="100"/>
<Label Content="Label" Name="label1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="206,104,0,0"/>

2、CS程序

using System;
using System.Windows;
using System.Windows.Controls;
using System.Net;
using System.IO;
using System.Threading;
using System.Drawing;
 
namespace WpfDemo
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            if (HttpFileExist("http://183.62.138.31:57863/opt/resources/%E9%A3%8E%E6%99%AF/f1.jpg"))
            {
                DownloadHttpFile("http://183.62.138.31:57863/opt/resources/%E9%A3%8E%E6%99%AF/f1.jpg", @"d:\f1.jpg");
            }
        }
        public void DownloadHttpFile(String http_url, String save_url)
        {
            WebResponse response = null;
            //获取远程文件
            WebRequest request = WebRequest.Create(http_url);
            response = request.GetResponse();
            if (response == null) return;
            //读远程文件的大小
            pbDown.Maximum = response.ContentLength;
            //下载远程文件
            ThreadPool.QueueUserWorkItem((obj) =>
            {
                Stream netStream = response.GetResponseStream();
                Stream fileStream = new FileStream(save_url, FileMode.Create);
                byte[] read = new byte[1024];
                long progressBarValue = 0;
                int realReadLen = netStream.Read(read, 0, read.Length);
                while (realReadLen > 0)
                {
                    fileStream.Write(read, 0, realReadLen);
                    progressBarValue += realReadLen;
                    pbDown.Dispatcher.BeginInvoke(new ProgressBarSetter(SetProgressBar), progressBarValue);
                    realReadLen = netStream.Read(read, 0, read.Length);
                }
                netStream.Close();
                fileStream.Close();
 
            }, null);
        }       
        /// <summary>
        ///  判断远程文件是否存在
        /// </summary>
        /// <param name="fileUrl">文件URL</param>
        /// <returns>存在-true,不存在-false</returns>
        private bool HttpFileExist(string http_file_url)
        {
            WebResponse response = null;
            bool result = false;//下载结果
            try
            {
                response = WebRequest.Create(http_file_url).GetResponse();
                result = response == null ? false : true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
            }
            return result;
        }
        public delegate void ProgressBarSetter(double value);
        public void SetProgressBar(double value)
        {
            //显示进度条
            pbDown.Value = value;
            //显示百分比
            label1.Content = (value / pbDown.Maximum) * 100 + "%";
        }
    }
}

C# Common Code的更多相关文章

  1. CodeForcesGym 100641B A Cure for the Common Code

    A Cure for the Common Code Time Limit: 3000ms Memory Limit: 262144KB This problem will be judged on  ...

  2. CV code references

    转:http://www.sigvc.org/bbs/thread-72-1-1.html 一.特征提取Feature Extraction:   SIFT [1] [Demo program][SI ...

  3. Integrate Your Code with the Frameworks---整合你的代码和框架

    Back to Frameworks Integrate Your Code with the Frameworks When you develop an app for OS X or iOS, ...

  4. Separate code and data contexts: an architectural approach to virtual text sharing

    The present invention provides a processor including a core unit for processing requests from at lea ...

  5. JMM(java内存模型)

    What is a memory model, anyway? In multiprocessorsystems, processors generally have one or more laye ...

  6. python简单搭建HTTP Web服务器

    对于Python 2,简单搭建Web服务器,只需在i需要搭建Web服务器的目录(如C:/ 或 /home/klchang/)下,输入如下命令: python -m SimpleHTTPServer 8 ...

  7. JAVA深入研究——Method的Invoke方法。

    在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java ...

  8. http2协议翻译(转)

    超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...

  9. Android按键事件处理流程 -- KeyEvent

    刚接触Android开发的时候,对touch.key事件的处理总是一知半解,一会是Activity里的方法,一会是各种View 中的,自己始终不清楚到底哪个在先哪个在后,总之对整个处理流程没能很好的把 ...

随机推荐

  1. python的日志配置

    settings.py中 DEBUG_TOOLBAR_CONFIG = { "JQUERY_URL": '//cdn.bootcss.com/jquery/2.2.4/jquery ...

  2. Java tomcat Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost

    关于 下面问题是因为(8005, 8080, 8009) 被原tomcat占用了. Several ports (8005, 8080, 8009) required by Tomcat v9.0 S ...

  3. 2、Netty基础

    一.前言 主要包含下面内容: 初识 Netty: 使用 Java NIO 搭建简单的客户端与服务端实现网络通讯: 使用 Netty 搭建简单的客户端与服务端实现网络通讯: Netty 底层操作与 Ja ...

  4. pip install pytest on Mac (EI Capitan 10.11.6)

    升级了Mac 系统后发现用pip安装pytest出现下面链接中的问题,解决方法是在install时候加上--user选项: 1. 切到home directory: cd - 2. install p ...

  5. java常见报错及解决

    Java常见报错信息: Java 常见异常种类 Java Exception: 1.Error  2.Runtime Exception 运行时异常 3.Exception  4.throw 用户自定 ...

  6. mysql创建表及插入数据操作步骤及注意要点

    环境:mysql workbench 1.创建新的表,注意,指定要存放的数据库 列名可以加单引号(键盘上1左边的引号),也可以不加 2.插入数据 注意:如果数据是字符型,必须使用单引号或者双引号,如: ...

  7. JS 实现右下角弹窗

    <!DOCTYPE HTML> <head> <title>JS实现右下角弹窗</title> <meta http-equiv="co ...

  8. springboot学习一:快速搭建springboot项目

    1.idea创建springboot工程 JDK选择1.8以上的版本 选择springboot的版本和添加配置项 新建一个HelloController,测试 访问 http://localhost: ...

  9. xml 转换成对象(采用反射机制对对对象属性赋值)

    /// <summary> /// 采用反射机制对对对象属性赋值 /// </summary> /// <param name="node">& ...

  10. oracle入坑日记<四>表空间

    1   表空间是什么 1.1.数据表看做的货品,表空间就是存放货品的仓库.SQLserver 用户可以把表空间看做 SQLserver 中的数据库. 1.2.引用[日记二]的总结来解释表空间. 一个数 ...