Silverlight WP7:如何覆盖静态资源?
如何覆盖Windows Phone 7应用程序中的静态资源 我将许多文本框堆叠在一个列表中,我希望缩小它们之间的间距,但不重新放置整个控件 我认为PhoneTouchTargetOverhang是造成巨大利润的原因。如何覆盖它 我已尝试将其添加到我的PhoneApplicationPage。参考资料:Silverlight WP7:如何覆盖静态资源?,silverlight,windows-phone-7,resources,overriding,Silverlight,Windows Phone 7,Resources,Overriding,如何覆盖Windows Phone 7应用程序中的静态资源 我将许多文本框堆叠在一个列表中,我希望缩小它们之间的间距,但不重新放置整个控件 我认为PhoneTouchTargetOverhang是造成巨大利润的原因。如何覆盖它 我已尝试将其添加到我的PhoneApplicationPage。参考资料: <Thickness x:Key="PhoneTouchTargetOverhang">0</Thickness> 0 。。。但这并不影响任何事情 此外,我还试图覆盖其
<Thickness x:Key="PhoneTouchTargetOverhang">0</Thickness>
0
。。。但这并不影响任何事情
此外,我还试图覆盖其他资源,如默认背景色和前景色,但没有成功。无论我做什么,什么都不会发生
澄清:
- 我不想重新设置整个控件的模板,只想更改模板使用的一些资源
- 我不在乎删除文本框模板上的触摸边距是否是“糟糕的设计”。对于我正在处理的这个案子,有一个要求就是让他们靠得很近
- 我可能误解了
但是如果你只是重复数据绑定列表框中的文本框,那么我认为你可以在数据模板中设置这些文本框的边距
<ListBox ItemsSource="{...}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Margin="0" Text="{...}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我可能误解了 但是如果你只是重复数据绑定列表框中的文本框,那么我认为你可以在数据模板中设置这些文本框的边距
<ListBox ItemsSource="{...}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Margin="0" Text="{...}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我还没有尝试过这个方法,但是将
顶部
和底部
边距设置为负数应该会使文本框
更加靠近
<TextBox Margin="0,-10,0,-10" Text="Some text"/>
我还没有尝试过这个方法,但是将
顶部
和底部
边距设置为负数应该会使文本框
更加靠近
<TextBox Margin="0,-10,0,-10" Text="Some text"/>
尝试更改静态资源时,您应该签出这些资源: 而且 -这实际上显示了如何在xaml中设置textbox的样式(在您的示例中是textbox控件)。由于您使用的是wp7,因此可以在app.xaml文件中声明这些。如果您希望在整个应用程序中应用这些样式,这是一个很好的方法。如果不是的话,Praetorian的解决方案是您想要设计的特定控制的替代方案 从我使用的情况来看,没有理由不起作用。老实说,我认为创建一个模板比在xaml文件中的单个控件上应用负边距更好(更整洁) 还要注意,出于用户体验的目的,利润率的增加是有原因的。如果将它们放得太近,则很难选择某个控件。我相信这是一个要求,但我不确定确切 下面是在app.xaml中放置内容的示例:
<Style x:Key="TextBoxStyle1" TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果您不想从头开始,这是为textbox控件创建模板的完整示例
HTH.在尝试更改静态资源时,您应该签出这些资源: 而且 -这实际上显示了如何在xaml中设置textbox的样式(在您的示例中是textbox控件)。由于您使用的是wp7,因此可以在app.xaml文件中声明这些。如果您希望在整个应用程序中应用这些样式,这是一个很好的方法。如果不是的话,Praetorian的解决方案是您想要设计的特定控制的替代方案 从我使用的情况来看,没有理由不起作用。老实说,我认为创建一个模板比在xaml文件中的单个控件上应用负边距更好(更整洁) 还要注意,出于用户体验的目的,利润率的增加是有原因的。如果将它们放得太近,则很难选择某个控件。我相信这是一个要求,但我不确定确切 下面是在app.xaml中放置内容的示例:
<Style x:Key="TextBoxStyle1" TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果您不想从头开始,这是为textbox控件创建模板的完整示例
HTH.否,将边距设置为0不起作用。导致文本框模板空白的是PhoneTouchTargetOverhang资源。如果我能以某种方式推翻它…谢谢你的解释。刚刚在VS2010中玩了一个游戏-我不相信PhoneTouchTargetOverhang是您需要更改的-但看起来确实需要在Blend中重新设置文本框的样式。不,将边距设置为0不起作用。导致文本框模板空白的是PhoneTouchTargetOverhang资源。如果我能以某种方式推翻它…谢谢你的解释。刚刚在VS2010中玩了一个游戏-我不相信PhoneTouchTargetOverhang是您需要更改的-但看起来确实需要在Blend中重新设置文本框的样式。这会导致文本框重叠,按一个文本框可能会在另一个文本框上进入编辑模式。尝试从-1开始,而不是从-10开始,然后更改边距直到它们符合您的喜好。这会导致文本框重叠,按一个文本框可能会在另一个文本框上进入编辑模式。请尝试从-1开始,而不是-10,并更改边距,直到它们符合您的喜好。找不到有关如何覆盖您提供的链接上的静态资源的信息。。。我不想完全重新设置样式/重新模板,只想更改模板使用的一两个资源。这在WP7中是否可能实现并删除?我不明白。@Andreas据我所知,重写静态资源的唯一方法是在App.xaml中定义一个新资源或直接修改标记。还请记住,您不必定义一个完全“新”的模板,只需应用所需的样式即可。再次检查第二个链接。我认为您可以定义特定样式(例如边距),而无需为控件定义整个模板。在您提供的链接上找不到有关如何覆盖静态资源的信息。。。我不想完全重新设计样式/重新模板,只想更改一两个资源