我想根据容器的宽度设置TextBlock的宽度减去TextBlock上设置的边距.
这是我的代码
<TextBlock x:Name="txtStatusMessages"
Width="{Binding ElementName=LayoutRoot,Path=ActualWidth }"
TextWrapping="WrapWithOverflow"
Foreground="White"
Margin="5,5,5,5">This is a message
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
这很有效,除了由于Left和Right Margins bbeing设置为5而TextBlock为10个单位太大的事实.
好的,所以我想......让我们使用转换器.但我不知道如何传递容器控件的ActualWidth(参见上图:LayoutRoot).
我知道如何使用转换器,甚至是带参数的转换器,只是不是像......参数ElementName = LayoutRoot,Path = ActualWidth
例如,我无法完成这项工作......
Width="{Binding Converter={StaticResource PositionConverter},
ConverterParameter={Binding ElementName=LayoutRoot,Path=ActualWidth }}"
Run Code Online (Sandbox Code Playgroud)
我希望我已经说清楚了,希望你可以提供帮助,因为Google今晚对我毫无帮助.
TIA!
道格
我有一个新手WPF问题.
想象一下,我的用户控件有一个名称空间声明,如下所示:
xmlns:system="clr-namespace:System;assembly=mscorlib"
Run Code Online (Sandbox Code Playgroud)
我有这样的用户控制资源:
<UserControl.Resources>
<system:Int32 x:Key="Today">32</system:Int32>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
然后在我的用户控件的某处我有这个:
<TextBlock Text="{StaticResource Today}"/>
Run Code Online (Sandbox Code Playgroud)
这将导致错误,因为它Today被定义为整数资源,但Text属性需要一个字符串.这个例子是人为的,但希望能说明这个问题.
问题是,如果我的资源类型与属性类型完全匹配,我有没有办法为我的资源提供转换器?类似于IValueConverter的绑定或类型转换器.
谢谢!
我有一个表单页面,其中包含一个接受日期的inputText字段.我们有一个转换器将字符串从文本框转换为Date对象(即"2011-03-01"到java.util.Date("2011-03-01""))
如果字符串不是日期,如"123",则会显示验证错误消息,如"value(123)必须是日期".
目前,在我的.properties文件中,我看到:
javax.faces.converter.DateTimeConverter.DATE = value({0})必须是日期
我需要通过准确指定哪个字段必须是日期来使此错误消息更加清晰.(因为表单上可能有多个日期文本字段).
我想将其更改为:
javax.faces.converter.DateTimeConverter.DATE =值为{1}的字段"{0}"必须是日期
但是,我不确定JSF如何自动填写{0}和{1}.如何在JSF Converter错误消息中指定自己的变量?
注意:我添加了尝试创建自己的验证器(不要与转换器混淆)但似乎JSF框架在其生命周期中的验证之前进行转换.
请建议用于货币转换的API,它返回JSON或小尺寸的html.我使用http://www.google.com/finance/converter?a=1&from=RUB&to=USD返回11 kb的HTML.我在我的iOS应用程序中使用它.
提前致谢!
我想知道你如何决定何时使用converters以及何时使用triggers.我更喜欢在GUI上使用触发器来操作(比如显示/隐藏控件,改变它们的外观等).
前段时间我使用了一个BooleanToVisibilityConverter用于此目的,但现在,我只是不需要它,我做所有与visibility使用触发器相关的事情,我甚至开始思考" 由MS团队创建一个目的是什么BooleanToVisibilityConverter?" .通常,当我有可能尝试使用声明方式编写代码时 - 在本例中 - XAML.
你对此有何看法?
我无法转换这样的东西:
byte[] b = new byte[] { 12, 24, 19, 17};
Run Code Online (Sandbox Code Playgroud)
进入这样的事情:
float myfloatvalue = ?;
Run Code Online (Sandbox Code Playgroud)
有人可以举个例子吗?
另外如何将浮动转回字节?
我有一个一维的String数组,我想转换成一维字节数组.我该怎么做呢?这需要ByteBuffer吗?我怎样才能做到这一点?(字符串可以是任意长度,只是想知道如何进行这样的操作.在将它转换为字节数组后,我怎么能将它转换回String数组?
-担
哪个更好地使用性能?与触发器相比,转换器的限制与反之亦然.我应该限制转换器的使用,因为它会导致类爆炸吗?
我总觉得JSON序列化程序实际遍历整个对象的树,并在它遇到的每个接口类型对象上执行自定义JsonConverter的WriteJson函数 - 不是这样.
我有以下类和接口:
public interface IAnimal
{
string Name { get; set; }
string Speak();
List<IAnimal> Children { get; set; }
}
public class Cat : IAnimal
{
public string Name { get; set; }
public List<IAnimal> Children { get; set; }
public Cat()
{
Children = new List<IAnimal>();
}
public Cat(string name="") : this()
{
Name = name;
}
public string Speak()
{
return "Meow";
}
}
public class Dog : IAnimal
{
public string Name { get; …Run Code Online (Sandbox Code Playgroud) 我正在尝试尽快将十六进制转换char为整数.
这只是一行:
int x = atoi(hex.c_str);
有更快的方法吗?
在这里,我尝试了一种更加动态的方法,而且速度稍快一些.
int hextoint(char number) {
if (number == '0') {
return 0;
}
if (number == '1') {
return 1;
}
if (number == '2') {
return 2;
}
/*
* 3 through 8
*/
if (number == '9') {
return 9;
}
if (number == 'a') {
return 10;
}
if (number == 'b') {
return 11;
}
if (number == 'c') {
return 12;
}
if (number == 'd') …Run Code Online (Sandbox Code Playgroud)