小编t9m*_*ike的帖子

如何创建100%自定义DialogFragment

我希望使用完全自定义的片段的Android对话框:不包括任何平台对话框主题片段.例如,像这样:

屏幕截图

我该怎么做呢?

android xamarin.android

13
推荐指数
2
解决办法
2万
查看次数

为什么在WPF UI线程中执行异步回调

关于这段代码:

static async Task<string> testc()
{
    Console.WriteLine("helo async " + Thread.CurrentThread.ManagedThreadId); 
    await Task.Run(() => { 
        Thread.Sleep(1000);
        Console.WriteLine("task " + Thread.CurrentThread.ManagedThreadId); 
    });
    Console.WriteLine("callback "+Thread.CurrentThread.ManagedThreadId);
    return "bob";
}

static void Main(string[] args)
{
    Console.WriteLine("helo sync " + Thread.CurrentThread.ManagedThreadId);
    testc();
    Console.WriteLine("over" + Thread.CurrentThread.ManagedThreadId);
    Thread.Sleep(2000);
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

helo sync 10
helo async 10
over10
task 11
callback **11**
Run Code Online (Sandbox Code Playgroud)

哪个是好的:await之后的代码片段与任务本身在同一个线程中执行.

现在,如果我在WPF应用程序中执行此操作:

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    Console.WriteLine("helo sync " + Thread.CurrentThread.ManagedThreadId);
    testc();
    Console.WriteLine("over" + Thread.CurrentThread.ManagedThreadId);
    Thread.Sleep(2000);
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

它生成以下输出:

helo sync 8 …
Run Code Online (Sandbox Code Playgroud)

c# wpf asynchronous

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

Task.Factory.StartNew()在Mono/MonoTouch下延迟

在Mono和MonoTouch下,我看到我打电话之间有大约500毫秒的延迟:

StartNew(Action<object> action, object state, CancellationToken cancellationToken, 
    TaskCreationOptions creationOptions, TaskScheduler scheduler);
Run Code Online (Sandbox Code Playgroud)

当工作代码实际开始执行时.

我创建了一个测试来显示:

public static class TestTaskFactory
{
    private class TaskInfo
    {
        public int Number;
    }

    private static int NUM_TASKS = 5;
    private static int NumFinished = 0;

    public static void Run()
    {
        for (int n = 1; n <= NUM_TASKS; n++)
        {
            Log("Starting task #" + n + " ...");
            var task_info = new TaskInfo { Number = n };
            var task = Task.Factory.StartNew(Worker, task_info, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default);
            Thread.Sleep(0); …
Run Code Online (Sandbox Code Playgroud)

c# mono xamarin.ios

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

我可以使用 SkiaSharp 将 SVG 渲染为 PNG 吗?

我正在尝试使用 SkiaSharp 将 SVG 文件转换为 PNG。我知道有很多选择,但我想评估它的 SVG 负载支持。

这可能吗?我试过这个:

var svg = new SKSvg(new SKSize(200, 200));
svg.Load("image.svg");

var bitmap = new SKBitmap((int)svg.CanvasSize.Width, (int)svg.CanvasSize.Height);
var canvas = new SKCanvas(bitmap);
canvas.DrawPicture(svg.Picture);
canvas.Flush();
canvas.Save();

using (var image = SKImage.FromBitmap(bitmap))
using (var data = image.Encode(SKImageEncodeFormat.Png, 80))
{
    // save the data to a stream
    using (var stream = File.OpenWrite("image.png"))
    {
        data.SaveTo(stream);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我只是得到一个空图像。

c# svg skiasharp

5
推荐指数
1
解决办法
5072
查看次数

从MonoTouch访问iCloud NSUbiquitousKeyValueStoreDidChangeExternallyNotification详细信息

在MonoTouch下,我想访问NSUbiquitousKeyValueStoreDidChangeExternallyNotification(iOS5/iCloud键值入站更新)通知数据:

  • NSUbiquitousKeyValueStoreChangeReasonKey - > NSNumber
  • NSUbiquitousKeyValueStoreChangedKeysKey - > NSString的NSArray

有一个示例@ http://docs.xamarin.com/@api/deki/files/321/=iCloud.zip,但上面访问的代码已注释掉并且有错误(它如何尝试将原因转换为整数是错的).我在这附近:

NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSUbiquitousKeyValueStoreDidChangeExternallyNotification"), 
delegate(NSNotification n)  
{
    NSDictionary userInfo = n.UserInfo;
    NSNumber reason = (NSNumber)userInfo.ObjectForKey(
        new NSString("NSUbiquitousKeyValueStoreChangeReasonKey"));
    int ireason = reason.IntValue;
    NSArray changedKeys = (NSArray)userInfo.ObjectForKey(
        new NSString("NSUbiquitousKeyValueStoreChangedKeysKey"));
});
Run Code Online (Sandbox Code Playgroud)

我想出了如何将理由作为整数.但是如何将NSStrings的NSArray转换为简单的字符串[]?我以前从未使用过核心的Objective-C类包装器,抱歉.

xamarin.ios ios5 icloud

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

在 WPF UserControl 中,将子控件上的 FontSize 设置为 UserControl 的 FontSize

我正在尝试将 UserControl 内某些控件上的 FontSize 设置为 UserControl 级别的 FontSize。这不起作用:

<UserControl x:Class="TestWpfApplication1.Scratch.UserControlFontSizeProp"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
   <Grid>
       <TextBlock 
        FontSize="{Binding RelativeSource={RelativeSource self},Path=FontSize}">
           Text
       </TextBlock>
   </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢。

c# wpf wpf-controls

2
推荐指数
1
解决办法
3126
查看次数

MonATouch/Xamarin.iOS中的VarArgs绑定

我有一个新的MonoTouch绑定部分工作.但是变量arguments函数在运行时会导致崩溃..h文件:

FOUNDATION_EXPORT void __BFLog(NSInteger lineNumber, NSString *method, NSString *file, 
    BFLogLevel level, NSString *tag, NSString *format, ...);
Run Code Online (Sandbox Code Playgroud)

C#:

internal static class CFunctions
{
    // extern void __BFLog (NSInteger lineNumber, NSString * method, 
    // NSString * file, BFLogLevel level, NSString * tag, NSString * format, ...);
    [DllImport ("__Internal", EntryPoint = "__BFLog")]
    internal static extern void BFLog (nint lineNumber, string method, string file, 
        LogLevel level, string tag, string format, string arg0);
}
Run Code Online (Sandbox Code Playgroud)

因为我会在arg0中传递""并真正传递格式部分中的字符串.但是在打电话时,我看到了这个崩溃:

critical:   at <unknown> <0xffffffff>
critical:   at (wrapper managed-to-native) BugfenderSDK.CFunctions.BFLog (System.nint,string,string,BugfenderSDK.LogLevel,string,string,string) …
Run Code Online (Sandbox Code Playgroud)

xamarin.ios xamarin

2
推荐指数
1
解决办法
305
查看次数