【问题标题】:Windows phone delete object dynamicallyWindows phone 动态删除对象
【发布时间】:2014-08-07 12:20:50
【问题描述】:

我在我的 XAML 中使用带有转换器的数据绑定,这里是:

  <TextBlock Text="{Binding Name}" />
  <Border Background="{Binding Converter={StaticResource ConversationMessagesColor}}">
     <TextBlock Text="{Binding Converter={StaticResource ConversationMessages}}" FontSize="{Binding Converter={StaticResource ConversationMessagesFontSize}}" Foreground="{Binding Converter={StaticResource ConversationMessagesForeground}}"/>
  </Border>

但是,在某些情况下,我确实需要根本没有“边框”属性。在一些转换器中做逻辑是没有问题的,但我不知道我可以使用哪个属性或方法来删除、隐藏(或禁用)边框。

类似:

   <Border Delete="{Binding Converter={StaticResource ConversationMessagesDelete}}" ...

在某些情况下,我想隐藏边框但仍显示 TextBlock

【问题讨论】:

  • 您的意思是在某些情况下您想隐藏Border,但仍显示TextBlock

标签: c# xaml data-binding windows-phone


【解决方案1】:

有几种方法可以做到这一点。

  1. 在您的视图模型中有一个Brush 属性来控制Border 的颜色。如果不想显示,只需将颜色设置为Transparent即可。

  2. Border 替换为Grid 控件。然后将另一个Rectangle(作为背景颜色)放在GridTextBlock 内。像这样。

    <Grid>
        <Rectangle x:Name="BackgroundVisual" Fill={StaticResource SomeBrush}/>
        <TextBlock ... />
    </Grid>
    

    然后你只需要控制RectangleVisibility 相应地隐藏和显示背景颜色。

【讨论】:

  • Ad 1.) 控制边框的颜色是我做的第一件事,但它有一个重要问题 - 如果文本太长(如果我不想要文本框太长) , 边框剪切文本。 Tx for 2,我会试试的。
  • Aaaah,我将“宽度”设置为 80,这就是问题所在!现在我把它改成了“最小宽度”,它就像一个魅力。
  • 是的,如果TextBlockText被切掉,说明它的父容器没有足够的空间来分配。所以是的,既然你删除了Width 约束,它应该可以工作。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 2020-07-08
  • 2013-03-18
  • 2019-07-11
  • 2016-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多