我正在创建一个带有WPF UI的EF4模型优先应用程序.我的UI上的一个控件是RichTextDocument,它输出一个WPF FlowDocument.我可以将FlowDocument序列化为字节数组,或者将其XAML标记提取为字符串.如果可以的话,我更愿意使用二进制序列化.这是我的问题:
如果我序列化为字节数组,如何在EDM设计器中将实体属性指定为字节数组?
如果我提取XAML标记字符串,是否可以指定EDM Designer将相应的数据库列创建为nvarchar(max)列?
至于第二个问题,我假设我总是可以手动编辑MyModel.edmx.sql文件,nvarchar(4000)以便nvarchar(max)在执行之前将数据类型更改为,但我想知道是否可以在Designer中完成.
谢谢你的帮助.
我正在使用此代码和带有xps扩展名的fileName将WPF FlowDocument保存到文件系统:
// Save FlowDocument to file system as XPS document
using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
var textRange = new TextRange(m_Text.ContentStart, m_Text.ContentEnd);
textRange.Save(fs, DataFormats.XamlPackage);
}
Run Code Online (Sandbox Code Playgroud)
我的应用可以使用以下代码重新加载文档:
// Load file
using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
m_Text = new FlowDocument();
var textRange = new TextRange(m_Text.ContentStart, m_Text.ContentEnd);
textRange.Load(fs, DataFormats.XamlPackage);
}
Run Code Online (Sandbox Code Playgroud)
但是,Windows 7附带的XPS Viewer无法打开文件.保存的XPS文件显示XPS图标,但是当我双击一个时,XPS查看器无法打开它.错误消息显示"XPS Viewer无法打开此文档".
知道我需要对XPS文档做什么才能让它可以通过XPS Viewer打开吗?谢谢你的帮助.
有没有办法水平拉伸WPF日历控件?该控件将让我设置HorizontalAlignment ="Stretch",但这与将属性设置为"Center"具有相同的效果.它会更改控件的宽度,但显示的日历在控件的中心保持相同的大小.我想将显示的日历拉伸到控件的边缘.
我似乎记得它可以使用ViewPort完成,但我找不到任何显示如何操作的东西.谢谢你的帮助.
这是一个简单的问题,令我惊讶的是,我找不到答案:如何在XAML中播放系统声音?
我有一个事件触发器附加到按钮.触发器显示一条消息,我希望它播放Windows Notify声音.我已经找到了几个关于如何播放声音文件的参考,但没有关于如何调用系统声音的内容.
谢谢你的帮助!
我正在创建一个带有列表框的WPF应用程序,我将绑定到项目名称.作为一个装饰元素,我想在列表中的每个项目旁边放置一个小图标,类似于Outlook在其"个人文件夹"列表中的方式.对于初学者,我将对列表中的所有项目使用相同的图像.
这是我到目前为止的标记(我会在它工作后将其移动到资源字典中):
<ListBox.Resources>
<ImageBrush x:Key="ProjectIcon" ImageSource="Images/project.png" />
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{StaticResource ProjectIcon}"/>
<TextBlock Text="{Binding Path=Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
我在图像资源中有错误,但我不确定如何修复它.有什么建议?谢谢.
几个月前我发布了一个关于跨程序集共享资源字典的问题.事实证明,您可以使用Component Resource Key标记扩展来实现.当时,我只能使用WPF自定义控件项目,而不是普通的类库项目.
现在我需要使用现有的普通类库项目来托管共享资源字典.这意味着我需要改进类库项目以支持组件资源键标记扩展.我已将Themes文件夹和Generic.xaml资源字典文档添加到类库项目,以及对PresentationCore,PresentationFramework和WindowsBase的引用.不幸的是,这似乎没有成功.
所以,这是我的问题:除了上述内容之外,WPF自定义控件库项目具有普通类库项目的功能吗?或者,换句话说,我还可以添加到我的类库项目中以使此功能正常工作吗?谢谢.
在 WPF 中,如何在 StatusBar 控件中显示抓取器(右下角的商场虚线三角形)?谢谢。
我已经使用Log4Net几个月了,我创建了一个新的Logger作为每个类的成员变量,如下所示:
// Member variables
private readonly ILog m_Logger = LogManager.GetLogger("MyClass");
Run Code Online (Sandbox Code Playgroud)
然后我从记录的类中的每个方法调用记录器,如下所示:
// Initialize
m_Logger.Info("MyClass.MyMethod() invoked.");
...
m_Logger.Debug("MyClass.MyMethod() did something...");
...
m_Logger.Info("MyClass.MyMethod() completed.");
Run Code Online (Sandbox Code Playgroud)
有没有理由不使用这种方法,还是有更好的方法来设置记录器?谢谢你的帮助.
如何更改基本的Resharper缩进选项?我注意到Resharper的缩进设置与VS 2010不同 - VS使用四个空格进行缩进,而且很难说Resharper使用了什么 - 但我的代码左边距是锯齿状的.
我想重置Resharper以使用与VS 2010相同的设置,但我找不到选项.
哪些可以找到?
我正在开发一个使用Entity Framework 4和SQL Compact 4的WPF桌面应用程序.我看过两种不同类型的Repository类:
的Repository实例化ObjectContext,其设置时的Repository是垃圾收集.该生命ObjectContext周期与应用程序的生命周期相同.
一个单独的DataStoreManager类创建并保存ObjectContext应用程序的生命周期.当需要存储库时,命令从中获取ObjectContext引用 DataStoreManager并将其传递给New Repository的构造函数.该生命ObjectContext周期是应用程序的生命周期.
这两种方法都被视为不良做法吗?是否存在任何绝对优势?这两种方法都被认为是最佳做法 是否被开发人员广泛接受或使用?谢谢你的帮助.
wpf ×7
wpf-controls ×3
flowdocument ×2
c# ×1
calendar ×1
image ×1
itemtemplate ×1
listbox ×1
log4net ×1
logging ×1
prism ×1
repository ×1
resharper ×1
xaml ×1
xps ×1