当前位置:编程学习 > C#/ASP.NET >>

请大家帮忙看看吧,实在搞不定了。谢谢啊!

VS2010,在WPF项目中。
新建一个用户控件,如下:


    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
            
        protected override void OnRender(DrawingContext drawingContext)
        {           
            String testString = "中华人民共和国zhonghuarenminggongheguo";
            FormattedText formattedText = new FormattedText(testString, System.Globalization.CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, new Typeface("Verdana"), 32, Brushes.Red);
            formattedText.SetFontStretch(System.Windows.FontStretches.UltraCondensed);
            drawingContext.DrawText(formattedText, new Point(10, 0));
        }

    }




上面代码中,formattedText.SetFontStretch(System.Windows.FontStretches.UltraCondensed)这行代码应该使接下来画出的文字的宽度有所变化(就是文字会变胖或变瘦),但实际上却不行,不知道为什么,搜遍资料了也没查出个所以然来。请高手们帮帮忙吧,如果您也不会,帮忙顶一下帖子也好呀,谢谢了啊! --------------------编程问答-------------------- --------------------编程问答-------------------- 是不是你的控件属性已经设置了?
而且这个override 函数是退出的时候才调用的吧? --------------------编程问答-------------------- 把这个控件直接添加到一个窗体上,就可以看到它画出的文字了,但就是没变形。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 不行就追加一句

this.RenderTransform = new ScaleTransform(2, 1);

来实现吧。 --------------------编程问答-------------------- wpf额、 门外汉、 帮顶 --------------------编程问答-------------------- 打下断点。看你的代码什么时候执行 --------------------编程问答-------------------- String testString = "中华人民共和国zhonghuarenminggongheguo";
            FormattedText formattedText = new FormattedText(testString, System.Globalization.CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, new Typeface(new FontFamily("Arial"), FontStyles.Normal, FontWeights.Bold, FontStretches.SemiExpanded), 32, Brushes.Red);
            formattedText.SetFontStretch(System.Windows.FontStretches.UltraCondensed);
            drawingContext.DrawText(formattedText, new Point(10, 0));

感觉是FontStretches这个在控制 你调下看行不? --------------------编程问答--------------------

base.OnRender(drawingContext);

基类的Render为什么不管了的? --------------------编程问答-------------------- 各位大侠呀呀呀~~~~~~~~~~~~
我还没有搞定呀呀呀~~~~~~~~~~~~!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 把这些写在XAML里完全可以,何必要用后台代码? --------------------编程问答-------------------- --------------------编程问答-------------------- 应该比较不同的选择,看看有没有变化。 --------------------编程问答-------------------- 所有FontStretches都试过来了

我这个是必须要用代码的,不能在XAML里写 --------------------编程问答-------------------- wpf不会,呵呵,友情帮顶! --------------------编程问答--------------------
引用 15 楼 pslh 的回复:
所有FontStretches都试过来了

我这个是必须要用代码的,不能在XAML里写


你说明一下你必须用后台代码的原因吗? --------------------编程问答-------------------- 将字体“Verdana”改成“Arial”可以看到效果,至于为什么,不要问我,我也不知道。 --------------------编程问答-------------------- --------------------编程问答-------------------- "将字体“Verdana”改成“Arial”可以看到效果,至于为什么,不要问我,我也不知道。"
--------------还是不行呀。

“你说明一下你必须用后台代码的原因吗?”
--------------我要使用代码混淆器。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 唉呀呀~~~
难道我要再一次的在无解中结帖吗?
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,