首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用WPF中的附加设置设置区域性

使用WPF中的附加设置设置区域性
EN

Stack Overflow用户
提问于 2015-02-25 08:35:22
回答 2查看 812关注 0票数 1

我正在尝试将我的当前区域性(具有自定义的十进制符号)传递给WPF,以便它将根据我的区域和语言设置在窗口中显示绑定值。

我的研究总是得到一个类似于this的解决方案,它传递语言标记,但不传递任何附加设置(比如十进制符号)。

如何强制WPF使用整个当前的区域性,而不仅仅是默认的语言设置?

关于可能的解决办法的问题:

我能否以某种方式将当前区域性传递给WPF使用的默认值转换器?或者推翻他们?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-25 09:33:33

有几个选择。也许最简单的方法是将您想要绑定的值包装起来,以筛选并为它们调用ToString。例如,如果您有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public decimal Value
    {
        get { return this.value; }
        set
        {
            if (value == this.value) return;
            this.value = value;
            OnPropertyChanged();
        }
    }

将其包装在ViewModel中如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public decimal Value
    {
        get { return this.value; }
        set
        {
            if (value == this.value) return;
            this.value = value;
            OnPropertyChanged("ValueString");
        }
    }

    public string ValueString
    {
        get { return this.value.ToString(CultureInfo.CurrentCulture); }
    }

并根据这个新属性绑定您的UI:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        <TextBlock x:Name="Result" Text="{Binding ValueString}" Grid.Row="0"/>

通过这种方式,您将根据计算机的区域性设置自动获取格式:

另一种选择是使用此处所示的方法:https://stackoverflow.com/a/19796279/66988

因此,您需要一个自定义绑定类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class CultureAwareBinding : Binding
{
    public CultureAwareBinding(string path)
        : base(path)
    {
        ConverterCulture = CultureInfo.CurrentCulture;
    }
}

然后你必须在你的XAML中使用它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        <TextBlock x:Name="Result" Text="{wpfApplication9:CultureAwareBinding Value}" Grid.Row="0"/>

在此之后,您应该看到所需的输出:

票数 2
EN

Stack Overflow用户

发布于 2021-03-22 02:21:25

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System;
using System.Globalization;
using System.Threading;
using System.Windows;
using System.Windows.Markup;

namespace WPF_CultureExample
{
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("tr-TR");
            var currentCulture = Thread.CurrentThread.CurrentCulture.Name;
            var ci = new CultureInfo(currentCulture)
            {
                NumberFormat = { NumberDecimalSeparator = "," },
                DateTimeFormat = { DateSeparator = "." }
            };
            Thread.CurrentThread.CurrentCulture = ci;
            Thread.CurrentThread.CurrentUICulture = ci;

            FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

            base.OnStartup(e);
        }
        
    }
}

您可以在OnStartup文件的后端代码中对App.xaml ()方法进行重新编码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28724490

复制
相关文章
WPF Textbox设置Placeholder
将一个与占位符绑定的TextBlock放入VisualBrush内,在TextBox的Text为空时使用VisualBrush绘制背景,不为空时背景设为Null。
码客说
2023/02/10
2K0
WPF设置托盘图标
正文 添加工具类 using System; using System.Drawing; using System.Windows.Forms; namespace ColorPicker.Utils { public class SystemTray { public static SystemTray Instance; /// <summary> /// 静态构造函数,在类第一次被创建或者静态成员被调用的时候调用 //
码客说
2022/03/13
1.1K0
WPF全局样式设置
/Resources/OverwrideDefaultControlStyles.xaml
码客说
2021/07/30
1.6K0
WPF 设置输入只能英文
然后在构造使用 System.Windows.Input.InputMethod 可以设置 IME 和输入是否可以是中文。
林德熙
2019/03/13
2.1K0
【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF
【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF
独立观察员
2022/12/06
1.6K0
【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF
WPF 设置纯软件渲染
最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了。万一这个版本发布了,产品经理说下个版本要提升性能就不好了。于是就找到一个快速的方法,让程序不使用硬件渲染这样下个版本要优化就让程序使用硬件渲染。
林德熙
2018/09/18
9590
WPF 设置纯软件渲染
最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了。万一这个版本发布了,产品经理说下个版本要提升性能就不好了。于是就找到一个快速的方法,让程序不使用硬件渲染这样下个版本要优化就让程序使用硬件渲染。
林德熙
2022/08/04
5940
设置WPF窗体全屏显示:
//全屏代码: private void Window_Loaded(object sender, RoutedEventArgs e) { // 设置全屏 this.WindowState = System.Windows.WindowState.Normal; this.WindowStyle = System.Windows.WindowStyle.None; this.ResizeMode = System.Windows.ResizeMode.NoResize;
hbbliyong
2018/03/05
3.9K0
WPF 给类库设置设计时使用的资源字典
在开发 WPF 类库时,由于类库里面没有存在 App.xaml.cs 文件,而在对单个 XAML 进行开发时,设计器将会因为找不到资源文件的存在,而拿不到资源。本文告诉大家简单的方法,给设计器设置仅在设计时引用的资源
林德熙
2021/04/25
2.2K0
WPF 给类库设置设计时使用的资源字典
WPF 设置管理员权限启动
而设置软件启动权限是管理员权限可以添加清单文件,右击添加 App.manifest 文件,此时要求在 csproj 设置 <ApplicationManifest>App.manifest</ApplicationManifest> 才可以
林德熙
2020/02/17
2.1K0
wxpython中设置radiobox相关使用
#coding=utf-8 import wx class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,"Wxpython Radiobox 演示",size = (800,600)) panel = wx.Panel(self) #第一种方法使用wx.RadioButton类 #RadioButton(parent, id=ID_AN
黯然销魂掌
2019/05/24
1.3K0
WPF XAML 为项目设置全局样式
正确的做法是封装统一风格的所有控件。 (例如按钮,统一高宽,字体,字体大小,然后申明到独立的资源字典中, 在App.xaml中引用)
zls365
2021/10/19
1.8K0
WPF备忘录(2)WPF获取和设置鼠标位置与progressbar的使用方法
一、WPF 中获取和设置鼠标位置   方法一:WPF方法 Point p = Mouse.GetPosition(e.Source as FrameworkElement);   Point p = (e.Source as FrameworkElement).PointToScreen(pp);  方法二: API方法 /// <summary> /// 设置鼠标的坐标 /// </summary> /// <param
hbbliyong
2018/03/05
1.8K0
WPF备忘录(2)WPF获取和设置鼠标位置与progressbar的使用方法
MacOS中Dock栏的设置和使用
Dock栏就是Mac放置常用应用程序和文件夹快捷方式的任务栏,为你访问这个应用和文件提供了非常方便的入口。
MAC先森
2019/09/06
3.8K0
k3 梅林固件设置_OpenWrt中,旁路由的设置与使用
旁路由又叫独臂路由,这一概念由杨过大侠首创(手动狗头)。旁路由一般是由CPU性能比较强的路由器来担当。旁路由的主要责任是帮助网络中的其他设备获取国外网站的数据。
全栈程序员站长
2022/08/24
3.6K0
k3 梅林固件设置_OpenWrt中,旁路由的设置与使用
WPF 设置 WS_EX_TRANSPARENT 触摸失效
调用 SetWindowLong 方法给 GWL_EXSTYLE 设置 WS_EX_TRANSPARENT 让窗口透明,此时应用程序只能收到鼠标消息但收不到触摸消息
林德熙
2020/07/07
7150
WPF 通过 EXIF 设置和读取图片的旋转信息
本文将告诉大家如何在 WPF 里面设置图片的 EXIF 信息,包括如何设置图片的旋转信息,以及如何读取 EXIF 的内容
林德熙
2023/04/07
8310
WPF 通过 EXIF 设置和读取图片的旋转信息
pycharm的背景颜色设置_css中设置背景颜色
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174387.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
7.1K0
pycharm的背景颜色设置_css中设置背景颜色
WPF 最小的代码使用 DynamicRenderer 书写 输入层设置宽高视觉树
在 WPF 中有 DynamicRenderer 提供高性能的书写,这个类在 WPF 只有 InkCanvas 使用,如果想要在自己的 UIElement 使用,需要写一些代码
林德熙
2019/03/13
9800
WAMP中的mysql设置密码 WAMP中的mysql设置密码密码
WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作。
joshua317
2021/04/23
23.4K0

相似问题

不包括周末的日期之间的小时数

12

获取不包括周末的小时数

12

如何在postgres中将间隔时数添加到时间戳中,不包括周末时间

12

计算两个日期之间的小时数-不包括周末

10

日期差异,不包括周末

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文