小编use*_*813的帖子

如何计算其已知字体大小和字符的WPF TextBlock宽度?

假设我有TextBlock文字"Some Text"字体大小10.0.

我怎么能算出合适的TextBlock 宽度

c# wpf font-size

72
推荐指数
5
解决办法
6万
查看次数

将JPEG图像转换为字节数组 - COM异常

使用C#,我正在尝试从磁盘加载JPEG文件并将其转换为字节数组.到目前为止,我有这个代码:

static void Main(string[] args)
{
    System.Windows.Media.Imaging.BitmapFrame bitmapFrame;

    using (var fs = new System.IO.FileStream(@"C:\Lenna.jpg", FileMode.Open))
    {
        bitmapFrame = BitmapFrame.Create(fs);
    }

    System.Windows.Media.Imaging.BitmapEncoder encoder = 
        new System.Windows.Media.Imaging.JpegBitmapEncoder();
    encoder.Frames.Add(bitmapFrame);

    byte[] myBytes;
    using (var memoryStream = new System.IO.MemoryStream())
    {
        encoder.Save(memoryStream); // Line ARGH

        // mission accomplished if myBytes is populated
        myBytes = memoryStream.ToArray(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,执行行ARGH给了我一条消息:

COMException未处理.句柄无效.(HRESULT异常:0x80070006(E_HANDLE))

我不认为这个文件有什么特别之处Lenna.jpg- 我是从http://computervision.wikia.com/wiki/File:Lenna.jpg下载的.你能说出上面的代码有什么问题吗?

c# com wpf file-io image

21
推荐指数
3
解决办法
6万
查看次数

使用自动属性显式实现接口

有没有办法使用自动属性显式实现接口?例如,考虑以下代码:

namespace AutoProperties
{
    interface IMyInterface
    {
        bool MyBoolOnlyGet { get; }
    }

    class MyClass : IMyInterface
    {
        static void Main(){}

        public bool MyBoolOnlyGet { get; private set; } // line 1
        //bool IMyInterface.MyBoolOnlyGet { get; private set; } // line 2
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码编译.但是,如果将第1行替换为第2行,则无法编译.

(这不是我需要让第2行工作 - 我只是好奇.)

c# automatic-properties

14
推荐指数
2
解决办法
3174
查看次数

睡在一个混合的C#线程中

这篇关于C#中线程的网络教程中,Joseph Albahari写道:"不要在汇集的线程中睡觉!" 你为什么不这样做?它对性能的影响有多严重?(这不是我想要做的;我只是好奇.)

c# multithreading sleep threadpool

13
推荐指数
3
解决办法
2821
查看次数

在网络关闭时,在网络文件夹上使用Directory.Exists

我公司的代码库包含以下C#行:

bool pathExists = Directory.Exists(path);
Run Code Online (Sandbox Code Playgroud)

在运行时,字符串path恰好是公司内部网上文件夹的地址 - 类似于\\company\companyFolder.当从我的Windows机器到内联网的连接启动时,这可以正常工作.但是,当连接断开时(就像今天一样),执行上面的行会导致应用程序完全冻结.我只能通过使用任务管理器将其删除来关闭应用程序.

当然,我宁愿在这种情况下Directory.Exists(path)回归false.有没有办法做到这一点?

c# connection networking

12
推荐指数
1
解决办法
1万
查看次数

Invalidate()和Refresh()都不会调用OnPaint()

我想在下面的代码中从第1行到第2行:

using System;  
using System.Windows.Forms;  

namespace MyNameSpace  
{  
    internal class MyTextBox : System.Windows.Forms.TextBox  
    {  
        protected override void OnEnabledChanged(EventArgs e)  
        {  
            base.OnEnabledChanged(e);  
            Invalidate(); // Line #1 - can get here  
            Refresh();  
        }

       protected override void OnPaint(PaintEventArgs e)  
       {
            base.OnPaint(e);   
            System.Diagnostics.Debugger.Break(); // Line #2 - can't get here  
       }  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

但是,似乎neiter Invalidate()和Refresh()会导致调用OnPaint(PaintEventArgs e).两个问题:

  1. 为什么不起作用?
  2. 如果无法修复:我只想调用OnPaint(PaintEventArgs e)来访问e.Graphics对象 - 有没有其他方法可以做到这一点?

c# winforms

11
推荐指数
1
解决办法
4379
查看次数

使用WinDbg读取转储文件时出现错误0x80004005

我正在使用32位应用程序,有时会导致某个64位Windows 7计算机崩溃.我使用Sysinternals的ProcDump实用程序生成了崩溃的转储文件.(我使用命令"procdump -ma -h MyApplication.exe".)现在,当我用WinDbg打开转储文件时,我收到此错误:

"打开转储文件'MyDumpFile.dmp'时失败,HRESULT 0x80004005.它可能已损坏或调试器无法理解的格式."

在32位Windows XP计算机上运行WinDbg X86以及在64位Windows 7计算机上运行WinDbg AMD64时都会发生这种情况.你能解释一下吗?

编辑 - 附加信息:在文件上运行dumpchk时,它说:

"Minidump没有系统信息.无法打开转储文件[MyDumpFile.dmp],HRESULT 0x80004005'未指定错误'".

也许转储文件只是腐败?

windbg crash-dumps

9
推荐指数
1
解决办法
5559
查看次数

在WPF中选择Drawing和Shape

我不太清楚类System.Windows.Media.Drawing和之间的差异System.Windows.Shapes.Shape.它们都暴露了WPF中与2D图形相关的功能.你何时会在WPF应用程序中选择一个,何时选择另一个?

wpf graphics 2d

9
推荐指数
1
解决办法
1660
查看次数

开始使用转储文件分析

我正在使用传统的VB6/COM应用程序,有时会导致Windows 7崩溃.我现在使用Sysinternals的ProcDump工具生成了其中一个崩溃的.dmp文件.但是,我以前从未使用过dump文件.您建议使用哪些资源来开始转储文件分析?

crash-dumps sysinternals

7
推荐指数
1
解决办法
3万
查看次数

在XAML中命名没有默认构造函数的用户控件

我有一个没有无参数构造函数的用户控件; 我们称之为WithoutDefaultConstructor.我想将一个WithoutDefaultConstructor被调用的myControl插入另一个控件(被调用MainWindow)的XAML代码中.但是,我收到此编译器错误:

"WithoutDefaultConstructor"类型不能具有Name属性.没有默认构造函数的值类型和类型可以用作ResourceDictionary中的项.

如何在不添加无参数构造函数的情况下解决此问题WithoutDefaultConstructor

以下是内容MainWindow.xaml:

<Window x:Class="WpfApplication1.MainWindow"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:WpfApplication1="clr-namespace:WpfApplication1" Title="MainWindow" 
 Height="350" Width="525">
    <WpfApplication1:WithoutDefaultConstructor Name="myControl">
    </WpfApplication1:WithoutDefaultConstructor>
</Window>
Run Code Online (Sandbox Code Playgroud)

以下是内容WithoutDefaultConstructor.xaml.cs:

using System.Windows.Controls;

namespace WpfApplication1
{
    public partial class WithoutDefaultConstructor : UserControl
    {
        private int I_really_need_to_initialize_this_int;

        public WithoutDefaultConstructor(int i)
        {
            InitializeComponent();
            I_really_need_to_initialize_this_int = i;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

wpf xaml default-constructor

6
推荐指数
1
解决办法
6725
查看次数