我宣布了一个字段:
WriteableBitmap colorBitmap;
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个简单的线程来执行某些操作
private void doSomething()
{
// ... bla bla bla
colorBitmap = new WriteableBitmap(/* parameters */);
myImage.Source = colorBitmap; // error here:S
}
Run Code Online (Sandbox Code Playgroud)
在Windows_Loaded事件中,我声明并启动了一个新线程:
private void window_Loaded(object sender, RoutedEventArgs e)
{
Thread th = new Thread(new ThreadStart(doSomething));
th.Start();
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法改变myImage的来源.我有一个错误,如:
InvalidOperationException未处理调用线程无法访问此对象,因为另一个线程拥有它.
我试图使用Dispatcher.Invoke,但它没有帮助...
Application.Current.Dispatcher.Invoke((Action)delegate
{
myImage.Source = colorBitmap;
});
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些答案,但从来没有像我一样找到这个案子.any1帮助我理解如何解决这样的问题(我最近遇到了同样的问题,但我无法调用该方法,因为其他线程拥有它).
我想让所有的孩子从给定节点到叶子而不使用递归.那可能吗?我知道如何在LINQ to XML中执行此操作,但是在XmlNode:S中存在一些问题
我一直想知道在WPF中是否可以创建一个ListView没有绑定到IEnumerable<>索引属性的行号?也许制作一个自动增加行号的模板?如何实现?
在某些情况下它可能很有用(例如,当您使用以令人不愉快的形式返回大量数据的外部类时 - 如字典或某些自定义类).
我想知道之前是否可以进行KeyDown事件触发TextChanged?
我已经添加了这两个简单的事件TextBox,现在我想检查是否Delete按下了键.如果是<do nothing>,如果没有<so something>.我已经创建了一个boolean字段,如果我按下就"记住" Delete,但问题是KeyDown触发后TextChanged,所以它不起作用......
我在屏幕中央有一个对象(图像).现在我想围绕这个对象动画一些圆圈.实现这项任务的最佳想法是什么?我应该使用任何专用JS的动画库吗?

我正试图打开System.Windows.Controls.AutoCompleteBox控制焦点.事件触发但没有任何反应:/当我开始输入一些文本时,自动完成框工作正常.我究竟做错了什么?
AutoCompleteBox box = new AutoCompleteBox();
box.Text = textField.Value ?? "";
box.ItemsSource = textField.Proposals;
box.FilterMode = AutoCompleteFilterMode.Contains;
box.GotFocus += (sender, args) =>
{
box.IsDropDownOpen = true;
};
Run Code Online (Sandbox Code Playgroud) 我有一个有一些日期的对象:
class MyObj
{
public DateTime? Date {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它Date是可空的.是否可以使用LINQ's GroupBy方法List<MyObj>按日期分组,包括nulls?
得到类似的东西:{elements_with_date_1, elements_with_date_2, ..., elements_with_no_date}?
configure()我想知道为什么我可以在方法中提供与我的方法不同的通用接口class?在第一个no error示例中,我提供了IType<Args1>泛型类型MyClass,然后我可以简单地通过IArgs2缺少 prop 来覆盖它,并且我没有收到任何错误。有什么方法可以确保类型完全相同吗?
interface IArgs1 {
a: string;
b: string;
}
interface IArgs2 {
a: string;
}
interface IArgs3 {
d: string;
}
interface IType<T> {
configure(args: T): void
}
// no error - even if 'b' is missing from IArgs2
class Class implements IType<IArgs1> {
configure(args: IArgs2) {}
}
// error - because it's missing all IArgs1 attributes
class MyClass implements IType<IArgs1> {
configure(args: IArgs3) {}
}
Run Code Online (Sandbox Code Playgroud) 我想压缩一些非常大的GML文件(1-10GB).我为此编写了一个方法,但它不能很好地工作.如果我使用7-zip for Windows(或其他东西)解压缩它,我得到的文件看起来很糟糕(它还没有完成,XML还没有完成)......我看不到我在做什么错误...
private void CompressFile()
{
string outputPath = Path.Combine(Path.ChangeExtension(_gmlPath, ".gz"));
var buffer = new byte[1024 * 64];
using (var compressing = new GZipStream(File.OpenWrite(outputPath), CompressionMode.Compress))
{
using (var file = File.OpenRead(_gmlPath))
{
var bytesRead = file.Read(buffer, 0, buffer.Length);
while (bytesRead != 0)
{
compressing.Write(buffer, 0, buffer.Length);
bytesRead = file.Read(buffer, 0, buffer.Length);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
[编辑]
其他问题:如何指定/更改文件名,在内部压缩GZ?它的名称与输入的名称相同,但没有.gml扩展名:S(输入中有)...
我有一个List<string>包含一些路径的列表.
C:\Dir\Test\
C:\MyDir\
C:\YourDir\
C:\Dir\
Run Code Online (Sandbox Code Playgroud)
我想浏览所有元素(使用LINQ)并删除从列表中的其他元素开始的条目.
在我的例子C:\Dir\Test\开头C:\Dir\- 所以我想删除C:\Dir\Test\.
c# ×8
wpf ×4
linq ×2
autocomplete ×1
compression ×1
css ×1
events ×1
group-by ×1
gzip ×1
html ×1
javascript ×1
jquery ×1
typescript ×1
xml ×1
xmlnode ×1