小编Sco*_*ott的帖子

将WPF(XAML)控件转换为XPS文档

我可以使用现有的WPF(XAML)控件,对其进行数据绑定并将其转换为可以使用WPF XPS文档查看器显示和打印的XPS文档吗?如果是这样,怎么样?如果没有,我应该如何使用XPS/PDF /等在WPF中进行"报告"?

基本上我想采用现有的WPF控件,数据绑定它以获取有用的数据,然后使其可打印并可供最终用户保存.理想情况下,文档创建将在内存中完成,除非用户专门保存文档,否则不会访问磁盘.这可行吗?

c# wpf xaml xps xpsviewer

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

.Net Windows服务中的UnhandledException处理程序

是否可以在Windows服务中使用UnhandledException处理程序?

通常我会使用自定义构建的异常处理组件来执行日志记录,电话回家等.这个组件为System.AppDomain.CurrentDomain.UnhandledException添加了一个处理程序,但据我所知,这并没有实现赢得Windows服务的任何东西所以我最终在我的2(或4)个服务入口点中使用了这种模式:


    Protected Overrides Sub OnStart(ByVal args() As String)
        ' Add code here to start your service. This method should set things
        ' in motion so your service can do its work.
        Try
            MyServiceComponent.Start()
        Catch ex As Exception
            'call into our exception handler
            MyExceptionHandlingComponent.ManuallyHandleException (ex)
            'zero is the default ExitCode for a successfull exit, so if we set it to non-zero
            ExitCode = -1
            'So, we use Environment.Exit, it seems to be the most appropriate thing to use
            'we pass …
Run Code Online (Sandbox Code Playgroud)

.net vb.net windows-services exception-handling

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

从.Net程序集中检索目标框架版本和目标框架配置文件

在编译.Net程序集时,有什么方法可以访问用于TargetFrameworkVersion和/或TargetFrameworkProfile的值吗?

我正在谈论的值是包含项目文件的值

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <OtherStuff>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
    <OtherStuff>
  </PropertyGroup>
  <OtherStuff>
  </OtherStuff>
</Project>
Run Code Online (Sandbox Code Playgroud)

基本上我想知道编译程序集时框架的目标版本是什么,以及可能的目标框架配置文件.

我不是在谈论当前加载的CLR版本,Environment.Version不是我想要的.

理想情况下,解决方案将使用System.Reflection,但如果我必须采用其他方法,我会.

.net reflection .net-assembly target-framework

16
推荐指数
2
解决办法
8508
查看次数

x64机器上的MSBuild.Community.Tasks.Attrib失败

在64位构建计算机上运行时,我遇到了来自MSBuild社区任务项目的Attrib任务的问题.

我把这个小测试项目放在一起,以显示问题所在:

<Project ToolsVersion="3.5" DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Import Project="$(MSBuildExtensionsPath32)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  <Target Name="PrintProperties">
    <Message Text="MSBuildCommunityTasksPath: $(MSBuildCommunityTasksPath)"/>
    <Message Text="MSBuildCommunityTasksLib: $(MSBuildCommunityTasksLib)"/>
    <Message Text="MSBuildNodeCount: $(MSBuildNodeCount)"/>
    <Message Text="MSBuildExtensionsPath: $(MSBuildExtensionsPath)"/>
    <Message Text="MSBuildExtensionsPath32: $(MSBuildExtensionsPath32)"/>
    <Message Text="MSBuildProjectDirectoryNoRoot: $(MSBuildProjectDirectoryNoRoot)"/>
    <Message Text="MSBuildToolsPath: $(MSBuildToolsPath)"/>
    <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)"/>
    <Message Text="MSBuildBinPath: $(MSBuildBinPath)"/>
    <Message Text="MSBuildExtensionsPath: $(MSBuildExtensionsPath)"/>
    <Message Text="MSBuildProjectDefaultTargets: $(MSBuildProjectDefaultTargets)"/>
    <Message Text="MSBuildProjectDirectory: $(MSBuildProjectDirectory)"/> 
    <Message Text="MSBuildProjectExtension: $(MSBuildProjectExtension)"/>
    <Message Text="MSBuildProjectFile: $(MSBuildProjectFile)"/>
    <Message Text="MSBuildProjectFullPath: $(MSBuildProjectFullPath)"/>
    <Message Text="MSBuildProjectName: $(MSBuildProjectName)"/>
    <Message Text="MSBuildStartupDirectory: $(MSBuildStartupDirectory)"/> 
  </Target>

  <Target Name="TestAttrib" DependsOnTargets="PrintProperties">
    <Attrib Files="Test.txt" ReadOnly="false" />
  </Target>

</Project>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用TestAttrib作为目标使用MSBuild构建此项目时,我得到以下结果

C:> msbuild"C:_Source Code\Test.vbproj"/ t:TestAttrib Microsoft(R)Build Engine …

msbuild 64-bit msbuildcommunitytasks

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

命令行Push to Private NuGet Gallery失败,无法处理请求.'好'

我从github.com/NuGet/NuGetGallery使用以下说明设置了一个私人NuGet Gallery:http://dotnet.dzone.com/news/how-set-local-nuget-gallery
这个画廊工作正常,它允许用户使用Web UI登录和上传包,以及使用nuget.exe和Visual Studio添加来检索包更新.但是,当我尝试使用nuget.exe(版本1.8)按此推送到Gallery时:

nuget.exe push myPackage.4.0.0.12.nupkg -Source"http:// myServer/NuGetGallery /"

我明白了:

无法处理请求.'好'.
.

通过Web UI上传工作正常我很确定必须正确设置文件/目录权限.
遗憾的是,处理请求失败并不是一个有用的错误消息.
所以我不确定还有什么可能是错的?

nuget nuget-server

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

强制自定义WPF控件正确调整大小

我编写了一个WPF用户控件,其中一部分涉及动态地向画布添加元素,这会影响所述画布的高度.画布嵌套在网格中.当我动态添加我的元素时,画布的高度会发生变化,但画布最终会延伸到整个控件的边缘之外,而不是使控件调整大小并使其自身更高.如何强制控件正确调整大小?我得到的感觉是我需要调用或覆盖Measure或Arrange但是我对这两种方法都没有运气 - 可能是因为我用不正确的参数调用它们,或者可能因为它们不是正确的调用方法.

.net wpf user-controls wpf-controls

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

在没有 Office 365 订阅的情况下使用 Azure 多租户应用程序访问用户日历信息

我们编写了一个服务应用程序,它从组织(租户)的多个日历中读取 Office 365 日历信息,并对条目进行一些分析。为此,我们使用 Office 365 REST API。
我们有多个客户端组织(租户)需要此功能,因此我按照此处的@Matthias Leibmann文章中的步骤操作使用 Office 365 邮件、日历和联系人 API 构建守护程序或服务应用程序(OAuth2 客户端凭据流)

我们在开发过程中使用了 Azure 试用帐户和 Office 365 试用订阅,一切运行良好,我们已经成功访问​​了多个租户的数据。
但是,当我尝试使用我们的生产 Azure 帐户和生产 Azure Active Directory (AAD) 设置多租户应用程序时,我意识到我无法在“权限”中定义“Office 365 Exchange Online”所需的应用程序权限。其他应用程序”部分,因为我们的生产 AAD 帐户未链接到 Office 365 帐户。
我假设我们可以使用我们的生产 azure 帐户注册 Office 365 的开发人员试用版,这将允许我们设置所需的权限,但我不知道 Office 365 试用版到期后 30 天会发生什么。

有没有办法在不将 Office 365 帐户链接到我们的生产 AAD 的情况下定义这些必需的权限?
这只是 Azure 前端的工具问题,还是存在技术原因,即使我们总是连接到其他公司的 Office 365 帐户,我们也需要自己的 Office 365 订阅?

api rest azure office365 outlook-restapi

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

查找公共乘数以将十进制数转换为整数的算法

我有一个数字数组,可能有多达8个小数位,我需要找到我可以乘以它们的最小公共数,以便它们都是整数.我需要这个所以所有的原始数字都可以乘以相同的比例并由一个只处理整数的密封系统处理,然后我可以检索结果并用公共乘数除以得到我的相对结果.

目前我们对这些数字进行了一些检查并乘以100或1,000,000,但是*密封系统完成的处理在处理大数字时可能会非常昂贵,因此为了它而将所有内容乘以一百万并不是真的一个很好的选择.可以说,每次乘以10倍时,密封算法的成本会高出10倍.

什么是最有效的算法,也将提供最好的结果,以实现我需要的东西,是否有我需要的数学名称和/或公式?

*密封系统没有真正密封.我拥有/维护它的源代码,但它的100,000个奇怪的专有魔法线,它已经彻底的bug和性能测试,改变它来处理浮动不是一个选项有很多原因.它是一个创建X×Y单元网格的系统,然后X by Y的网格被放入网格中,"专有魔法"发生并且结果被吐出 - 显然这是现实的极简化版本,但它是一个足够好的近似值.

到目前为止,有一些很好的答案,我想知道如何选择"正确"的答案.首先,我认为唯一公平的方法是创建每个解决方案并对其进行性能测试,但后来我意识到纯粹的速度并不是唯一的相关因素 - 更准确的解决方案也非常相关.无论如何我写了性能测试,但目前我正在使用"肠道感觉"公式,根据速度和准确度选择正确的答案.

我的性能测试处理了1000组不同的100个随机生成的数字.使用相同的随机数集测试每个算法.算法是用.Net 3.5编写的(虽然到目前为止兼容2.0)我努力使测试尽可能公平.

  • Greg - 乘以大数,然后除以GCD - 63毫秒
  • 安迪 - 字符串解析 - 199毫秒
  • Eric - Decimal.GetBits - 160毫秒
  • Eric - 二进制搜索 - 32毫秒
  • 对不起 - 抱歉,我无法弄清楚如何在.Net中轻松实现您的解决方案(我不想花太多时间)
  • 比尔 - 我认为你的答案非常接近格雷格,所以没有实施.我确信它会更快,但可能不太准确.

所以格雷格乘以大数乘以然后除以GCD"解决方案是第二快算法,它给出了最准确的结果,所以现在我称之为正确.

我真的希望Decimal.GetBits解决方案是最快的,但它非常慢,我不确定这是由于Double转换为Decimal还是Bit掩码和转换.使用BitConverter.GetBytes和这里包含的一些知识应该有一个类似的可用解决方案:http://blogs.msdn.com/bclteam/archive/2007/05/29/bcl-refresher-floating-point-类型 - 好 - 坏 - 丑陋 - inbar-gazit-matthew-greig.aspx但是每次我读这篇文章时我的眼睛都会不停地上釉,我最终没时间试图实现一个解.

如果有人能想到更好的东西,我总是愿意接受其他解决方案.

algorithm math

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

使Silverlight Datagrid单元格不可选

我有一个DataGrid,我绑定到一个分页和排序的PagedCollectionView.尽管一列包含可单击的链接,但DataGrid的内容不可编辑.

我已经限制DataGrid的SelectionMode DataGridSelectionMode.Single停止多行选择,这是好的.但是,所选行还有一个选定的单元格,其颜色比所选行的其余部分略微浅,并且具有边框.

基本上我想要一个SelectedRow而不是SelectedCell(从UI/Display角度来看).

感觉它应该是设置属性的简单问题,但我觉得我可能需要编辑DataGrids模板和/或使用VisualStateManager.

我很高兴切换到DataGrid以外的其他控件,但我需要能够显示分组.

silverlight datagrid selection silverlight-3.0

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

当Checkbox值更改时,更改WPF ComboBox上的数据绑定

我有一个WPF ComboBox,它是一个数据绑定到一个集合,但取决于是否检查Checkbox我不想改变ComboBox绑定的集合.

基本问题是我有一大堆MyCustomer,我也有MyCustomer的过滤集合 - 过滤是非常密集的,我不想用CollectionView做,主要原因是它已经完成,过滤了集合已经存在 - 因此需要简单地切换组合的数据绑定.

我希望有一个纯XAML解决方案,显然,编写一些代码背后会是一个相对简单的解决方案,但它并不觉得它应该是必需的.

data-binding wpf

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