我有一个名为"MySilverlightControls"的Silverlight控件组件.几个文件夹进入该程序集我有一个类,它从第三方供应商扩展一个网格列,我们称之为"MyImageColumn.cs".
我还创建了一个名为的资源字典Generic.xaml,它位于Themes程序集的文件夹中.在那个资源字典中,我定义了一个名为MyImageColumnTemplate的ControlTemplate :
<ControlTemplate x:Name="MyImageColumnTemplate" >
<Grid Margin="8,8,4,4" MaxHeight="32" MaxWidth="32">
<Grid.Resources>
<localGrid:StatusColumnImageConverter x:Key="ImageContentConverter"/>
</Grid.Resources>
<Border Margin="5,5,0,0" Background="Black" Opacity="0.15" CornerRadius="5" />
<Border Background="#FF6E6E6E" CornerRadius="4,4,4,4" Padding="4" Margin="0,0,5,5">
<Border Background="White" CornerRadius="2,2,2,2" Padding="3">
<Image Source="{Binding EditValue, Converter={StaticResource ImageContentConverter}}" Stretch="Uniform"/>
</Border>
</Border>
</Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
我的问题是:从MyImageColumn,我如何以编程方式引用/加载此控件模板,以便将其分配给列上的属性?我希望使用类似这样的语法:
ControlTemplate ct = (ControlTemplate)Application.Current.Resources["MyImageColumnTemplate"];
Run Code Online (Sandbox Code Playgroud)
但是这总是返回null.当我在Reflector中加载程序集时,我看到Generic.xaml文件在那里,资源的名称是MySilverlightControls.g.resources,并且其中的路径是themes/generic.xaml.
我怎样才能获得此资源字典中的各个项目?
silverlight resources resourcedictionary controltemplate silverlight-3.0
如何将每页的最大行数设置为5?默认值为10.
<SettingsPager PageSize="5">
Run Code Online (Sandbox Code Playgroud)
......不起作用
感谢帮助
我最近选择了一些C#代码,其中一个类上面有一个Guid属性.我不明白这是什么或它用于什么.
有人可以给我一个简要的概述,或者只是指向一些提供更多信息的文章的方向?
谢谢!
我有一个文本框绑定到具有类型Timespan属性的类,并编写了一个值转换器将字符串转换为TimeSpan.
如果在文本框中输入非数字,我希望显示自定义错误消息(而不是默认的"输入字符串格式错误").
转换器代码是:
public object ConvertBack(
object value,
Type targetType,
object parameter,
CultureInfo culture)
{
try
{
int minutes = System.Convert.ToInt32(value);
return new TimeSpan(0, minutes, 0);
}
catch
{
throw new FormatException("Please enter a number");
}
}
Run Code Online (Sandbox Code Playgroud)
我在XAML绑定中设置了'ValidatesOnExceptions = True'.
但是,我遇到了以下MSDN文章,它解释了为什么以上内容不起作用:
"数据绑定引擎不会捕获由用户提供的转换器抛出的异常.Rinit方法抛出的任何异常,或者Convert方法调用的方法抛出的任何未捕获的异常都被视为运行时错误"
我已经读过'ValidatesOnExceptions确实捕获TypeConverters中的异常,所以我的具体问题是:
我需要强制IE8显示如下:
浏览器模式:Internet Explorer 8
文档模式:IE8标准
我添加了此标记,但它只影响文档模式,而不影响浏览器模式.如何覆盖浏览器模式以确保页面始终以IE8浏览器模式显示?
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Run Code Online (Sandbox Code Playgroud) 我在osx上尝试一个非常简单的cpp程序只是为了让自己熟悉osx平台,所以我很惊讶地遇到任何错误信息.
这是代码:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我通过运行编译它
gcc -Wall hello.cpp -o hello
Run Code Online (Sandbox Code Playgroud)
然后我得到这个'未定义的符号'消息:
Undefined symbols:
"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
_main in ccA9oElQ.o
"std::ios_base::Init::Init()", referenced from:
__static_initialization_and_destruction_0(int, int)in ccA9oElQ.o
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const", referenced from:
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccA9oElQ.o
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const", referenced from:
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, …Run Code Online (Sandbox Code Playgroud) 如何为资源文件中的图像构造包URI?
我有一个名为的程序集MyAssembly.Resources.dll,它有一个名为Images的文件夹,然后在那里有一个名为Assets.resx的资源文件.此资源文件包含我的图像(称为MyImage.png).我的代码行是:
uri = new Uri("pack://application:,,,/MyAssembly.Resources,Culture=neutral,PublicKeyToken=null;component/Images/Assets/MyImage.png");
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将此URI提供给新BitmapImage的构造函数时,我会收到带有该消息的IOException
找不到资源'images/assets/myimage.png'.
请注意,我在同一个程序集中有其他松散图像,我可以使用包URI检索正常,这些图像的构建操作设置为资源但它们没有嵌入到resx文件中.我应该在路径中包含resx文件的名称吗?
(我希望在resx文件中嵌入图像,以便我可以利用UI文化设置来检索正确的图像(图像包含文本)).
我有一些问题,通过反射调用带有out参数的重载静态方法,并会欣赏一些指针.
我期待动态地创建类型像System.Int32或者System.Decimal,然后调用静态TryParse(string, out x)方法就可以了.
以下代码有两个问题:
t.GetMethod("TryParse", new Type[] { typeof(string), t } ) 无法返回我期望的MethodInfo
mi.Invoke(null, new object[] { value.ToString(), concreteInstance })似乎成功但没有将out参数concreteInstance设置为已解析的值
交织到此函数中,您可以看到一些临时代码,演示如果type参数设置为应该发生什么System.Decimal.
public static object Cast(object value, string type)
{
Type t = Type.GetType(type);
if (t != null)
{
object concreteInstance = Activator.CreateInstance(t);
decimal tempInstance = 0;
List<MethodInfo> l = new List<MethodInfo>(t.GetMethods(BindingFlags.Static | BindingFlags.Public));
MethodInfo mi;
mi = t.GetMethod("TryParse", new Type[] { typeof(string), t } ); //this …Run Code Online (Sandbox Code Playgroud) 我正在运行编译为x86的应用程序,它运行在64位Windows上.
为了解决ClickOnce文件关联的问题,我想从注册表的x86视图中读取一些CLSID值,然后将它们写入x64视图.
要清楚,这意味着从x86应用程序我想同时从x86注册表视图读取,然后写入x64注册表视图.我想取下我找到的值HKEY_CURRENT_USER\Software\Classes\CLSID\{my clsid}并将其写入HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{my clsid}.
我该怎么做?使用a RegistryView会产生意想不到的结果.例如,此OpenSubKey调用返回null:
keyPath = @"Software\Classes\CLSID\" + clsid;
var regularx86View = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry32);
var regularClassKey = regularx86View.OpenSubKey(keyPath, RegistryKeyPermissionCheck.ReadSubTree);
Run Code Online (Sandbox Code Playgroud)
如果我使用RegistryView.RegistryDefault或RegistryView.Registry64代替它返回密钥 - 但我希望它在使用时返回null,Registry64因为在x64视图中不存在该密钥,并且不应该发生重定向.
使用RegistryView适当的东西,或者我应该直接使用WinAPI?
c# ×5
resources ×2
wpf ×2
.net ×1
arrays ×1
asp.net ×1
browser ×1
c++ ×1
com-interop ×1
data-binding ×1
devexpress ×1
g++ ×1
image ×1
macos ×1
methods ×1
mode ×1
reflection ×1
registry ×1
silverlight ×1
uri ×1
x86-64 ×1