小编Sha*_*ish的帖子

如何使RichTextBlock中的超链接不完全不对齐?

我希望能够在RichTextBlock元素中显示超链接,但我也希望它看起来正确.我能够得到的最接近的是:

我怎么能看到它

这个XAML粘贴在下面 - 基本上,我使用InlineUIElement并编辑了资源以删除按钮周围的所有问题.我错过了什么吗?解决这个问题的唯一真正方法是滚动我自己的超链接吗?

这是富文本块的XAML:

<RichTextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="14">
    <Paragraph>I just want this
        <InlineUIContainer>
            <HyperlinkButton Style="{StaticResource HyperlinkButtonStyle1}">Hyperlink</HyperlinkButton>
        </InlineUIContainer>
        to not look like crap
    </Paragraph>
</RichTextBlock>
Run Code Online (Sandbox Code Playgroud)

这里是nuked资源的XAML:

<Style x:Key="HyperlinkButtonStyle1" TargetType="HyperlinkButton">
    <Setter Property="Foreground" Value="{StaticResource HyperlinkForegroundThemeBrush}"/>
    <Setter Property="Background" Value="{StaticResource HyperlinkButtonBackgroundThemeBrush}"/>
    <!--<Setter Property="BorderBrush" Value="{StaticResource HyperlinkButtonBorderThemeBrush}"/>-->
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="Padding" Value="0"/>
    <Setter Property="HorizontalAlignment" Value="Left"/>
    <Setter Property="VerticalAlignment" Value="Bottom"/>
    <Setter Property="FontFamily" Value="Global User Interface"/>
    <Setter Property="FontSize" Value="14"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="HyperlinkButton">
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="PointerOver">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter"> …
Run Code Online (Sandbox Code Playgroud)

xaml richtextbox windows-8 windows-runtime winrt-xaml

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

如何从Windows 8现代应用程序中的视频流中抓取帧?

我试图从mp4视频流中提取图像.看完后,似乎正确的方法是在C++中使用Media Foundations并打开框架/读取内容.

通过文档和示例的方式很少,但经过一些挖掘,似乎有些人通过将帧读入纹理并将该纹理的内容复制到记忆可读纹理(我甚至不是确定我在这里使用正确的条款).尝试我发现的虽然给了我错误,我可能做了一堆错误.

这是我尝试做的一小段代码(项目本身附在底部).

    ComPtr<ID3D11Texture2D> spTextureDst;
    MEDIA::ThrowIfFailed(
        m_spDX11SwapChain->GetBuffer(0, IID_PPV_ARGS(&spTextureDst))
        );

    auto rcNormalized = MFVideoNormalizedRect();
    rcNormalized.left = 0;
    rcNormalized.right = 1;
    rcNormalized.top = 0;
    rcNormalized.bottom = 1;
    MEDIA::ThrowIfFailed(
        m_spMediaEngine->TransferVideoFrame(m_spRenderTexture.Get(), &rcNormalized, &m_rcTarget, &m_bkgColor)
        );

    //copy the render target texture to the readable texture.
    m_spDX11DeviceContext->CopySubresourceRegion(m_spCopyTexture.Get(),0,0,0,0,m_spRenderTexture.Get(),0,NULL);
    m_spDX11DeviceContext->Flush();

    //Map the readable texture;                 
    D3D11_MAPPED_SUBRESOURCE mapped = {0};
    m_spDX11DeviceContext->Map(m_spCopyTexture.Get(),0,D3D11_MAP_READ,0,&mapped);
    void* buffer = ::CoTaskMemAlloc(600 * 400 * 3);
    memcpy(buffer, mapped.pData,600 * 400 * 3);
    //unmap so we can copy during next update.
    m_spDX11DeviceContext->Unmap(m_spCopyTexture.Get(),0);


    // and the present it …
Run Code Online (Sandbox Code Playgroud)

c++ windows-8 windows-runtime ms-media-foundation winrt-xaml

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

Generic.xaml xaml编译在控件样式上给出错误WMC0610(XBF生成错误代码0x3e9)

在库中编译XAML时出现以下错误:

主题\ Generic.xaml(35,12):XamlCompiler错误WMC0610:XBF生成错误代码0x03e9.

它失败的XAML代码(第35行)是:

<Style TargetType="annotations:CanvasAnnotationItem" xmlns:annotations="using:ACME.Controls.CanvasAnnotation">
Run Code Online (Sandbox Code Playgroud)

没有额外的信息来帮助解决错误.

xaml win-universal-app windows-10

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

如何检测Windows Mobile转换为连续模式?

有没有办法检测Windows Mobile 10是否已转换为连续模式?

Windows Phone上的消息框看起来与桌面上的消息框不同,我们的设计人员需要奇偶校验.我想写自己的版本,但我只想让它在手机上工作 - 我想在桌面上使用默认版本,或者当应用程序在手机上转换为连续版时.

有任何想法吗?

我在网上找不到任何东西,也找不到允许我检测它的API.

xaml windows-phone windows-runtime win-universal-app

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

在 Git 中,合并一些文件后,我想接受合并中剩下的所有“他们的”。我怎么做?

合并一些文件后,如何接受所​​有尚未合并的文件(我们的或他们的)?

我试过

git checkout --theirs Project\folder\*.json
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有起到任何作用。


这与现有问题不同,因为我只想接受剩余的文件。并非所有文件(这通常是提出的问题)。

git git-merge-conflict

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

ItemsControl.GetContainerForItemOverride 有什么用?

在为我遇到的问题寻找解决方案时,我遇到了GetContainerForItemOverride()并且我认为我不理解文档

MSDN 说:

创建或标识用于显示给定项目的元素。

但是,没有给定的项目 - 没有参数被传递到方法中。

出于好奇 - 这种方法的目的是什么?

(我显然搜索过它并无法真正找到答案)

c# wpf

4
推荐指数
1
解决办法
4130
查看次数

在WinRT的HttpClient类中使用Keep-Alive连接?

打开与服务器的连接时,我们的WinRT应用程序速度极慢.请求需要大约500毫秒才能运行.这阻碍了我们的一些场景.

在调试时,我们注意到当Fiddler处于活动状态时,请求要快得多 - 每个请求约100ms.稍后我们理解这是因为Fiddler在代理呼叫时使用了Keep-Alive连接,这使我们的代理呼叫更快.

我们以两种方式对此进行了双重检查.

  1. 我们将UseProxy设置为false,并观察到请求变回缓慢.
  2. 我们关闭了Fiddler的"重用连接"选项,并观察到请求恢复得很慢.

我们尝试通过Connection头启用keep-alive(.Connection.Add("Keep-Alive"))但这似乎没有任何影响 - 事实上,.NET组件似乎公然忽略了标头,并且没有按要求发送(再次通过Fiddler检查).

有谁知道如何在Windows 8,WinRT,HttpClient类中为请求设置keep-alive?

c# windows-8 windows-runtime dotnet-httpclient windows-store-apps

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

使用BitmapEncoder生成时,如何在循环中进行GIF重复

我能够使用BitmapEncoder(C#,WinRT)来创建动画gif.但是,我还没弄清楚如何让GIF循环回来并从头开始?

没有尝试太多,因为我不知道该尝试什么.搜索了在GIF上设置的更多属性,但找不到任何相对的内容.

c# windows animated-gif windows-runtime

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

在VC++ PPL中,如何创建一个同步返回的任务返回方法?

考虑以下C#代码:

async Task DoSomethingAsync()
{
 if (m_f)
   return;
 await DoSomethingInternalAsync();
}
Run Code Online (Sandbox Code Playgroud)

编译器将其转换为一个任务返回调用,如果m_f为true,则任务立即完成,如果不是,则将"异步"操作"委托"给DoSomethingInternalAsync().

现在,我如何在c ++中执行此操作?代码看起来应该是这样的:

task<void> DoSomethingAsync()
{
if (m_f)
   return [[What do I return here so the task is complete (.then called immediately)?!]];
return DoSomethingInternalAsync();
}
Run Code Online (Sandbox Code Playgroud)

Edit1:在C#中,我可以使用TaskCompletionSource <>来做同样的事情,但是没有使用async关键字 - 实质上是创建一个完成的Task.

c++ task-parallel-library windows-8 windows-runtime ppl

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

有没有办法在运行时找到 PackageFamilyName?

有没有办法在运行时找出 PackageFamilyName(如清单中所示)?我查看了 /Program Files/WindowsApps 并在那里找不到相关的字符串。找不到任何可以让我这样做的 API...

欢迎任何其他想法。

c# windows-8 windows-runtime windows-store-apps

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

如何强制任务在UI线程上运行?

原始消息如下.让我试着解释为什么我要求这个问题.

我有一个页面,可以收听Share charm请求:

void Page_Loaded(object sender, RoutedEventArgs e)
{
    m_transferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.GetForCurrentView();
    m_transferManager.DataRequested += TransferManager_DataRequested;
}
Run Code Online (Sandbox Code Playgroud)

当事件触发(TransferManager_DataRequested)时,它不会在UI线程上触发:

void TransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{
    var data = args.Request.Data;
          // More related stuff omitted - not important.
    data.SetDataProvider(StandardDataFormats.Bitmap, GetImage_DelayRenderer);
}
Run Code Online (Sandbox Code Playgroud)

现在,在GetImage_DelayRender调用时,它也不会在UI线程上调用.但是,在其中,我需要做一堆与UI相关的事情.具体来说,我需要调用一个只能在UI上工作的方法(这是我在别处使用的方法,我想重用它的逻辑).该方法被调用GetImageAsync,它需要在UI上运行,因为它与WriteableBitmap进行了大量的交互.它还会执行一系列异步操作(例如写入流等),这就是为什么它是异步的.我GetImageAsync()尽可能短的时间阻止用户界面.

这是GetImage_DelayRender看起来像:

private async void GetImage_DelayRenderer(DataProviderRequest request)
{
    var deferral = request.GetDeferral();
    await Dispatcher.RunTask(async () => // RunTask() is an extension method - described in the original question below.
        {
            try
            { …
Run Code Online (Sandbox Code Playgroud)

c# task windows-8

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

为什么我必须从动态输入类型参数中转换结果

我有一个返回double的简单动态对象:

class MyDynamic : DynamicObject
{
    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
        result = 2.0;
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我尝试调用一个接受int的方法:

    private static void SomeMethod(int number)
    {

    }
Run Code Online (Sandbox Code Playgroud)

然后,我打电话并将我的值传递给dynamic方法:

        dynamic x = new MyDynamic();
        SomeMethod(x.number);
Run Code Online (Sandbox Code Playgroud)

现在,这会导致异常,因为运行时抱怨它找不到相关的方法.这是预期的行为吗?我原本希望运行时自动将返回值强制转换为方法请求的类型(在本例中为int).

这是什么东西应该工作?

.net c# dynamic-language-runtime

0
推荐指数
1
解决办法
111
查看次数

ForEach Async是否可以运行并发任务的数量限制?

是否有一个着名的,经过良好测试的nuget包,它将为我提供类似Parallel ForEach的功能,但是我可以限制同时运行的并发任务量?

我知道我自己可以写一个,所以不要求代码样本 - 只是询问是否有一个流行的 nuget包可以为我做.

谢谢!

.net c#

0
推荐指数
1
解决办法
98
查看次数