Xaml UWP RichEditBox最初在ListView中只显示一行
我尝试了这里建议的解决方案:Xaml UWP RichEditBox最初在ListView中只显示一行,xaml,uwp,Xaml,Uwp,我尝试了这里建议的解决方案: 看起来它正在工作,但底层控件有一个bug使它变得无用-控件只显示一行文本,直到您将指针放在它上面,当它达到适当的大小时。在分配文本后,我试图强制执行该度量,但到目前为止,我无法使其生效。有人知道如何解决这个bug吗 UWP RichEditBox最初在ListView中只显示一行 问题是您没有指定RichEditBox的宽度,并且RichEditBox宽度与ListViewitem不匹配。目前,我们有一个解决方案,需要使用绑定方式动态更改RichEditBo
看起来它正在工作,但底层控件有一个bug使它变得无用-控件只显示一行文本,直到您将指针放在它上面,当它达到适当的大小时。在分配文本后,我试图强制执行该度量,但到目前为止,我无法使其生效。有人知道如何解决这个bug吗
UWP RichEditBox最初在ListView中只显示一行
问题是您没有指定RichEditBox
的宽度,并且RichEditBox
宽度与ListViewitem
不匹配。目前,我们有一个解决方案,需要使用绑定方式动态更改RichEditBox
宽度
public HomePage()
{
this.InitializeComponent();
this.Loaded += HomePage_Loaded;
this.DataContext = this;
}
private double _rdbWidth;
public double RDBWidth
{
get
{
return _rdbWidth;
}
set
{
_rdbWidth = value;
OnPropertyChanged();
}
}
private void MyListView_SizeChanged(object sender, SizeChangedEventArgs e)
{
RDBWidth = MyListView.ActualWidth;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string proprtyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(proprtyName));
}
Xaml代码
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView x:Name="MyListView" SizeChanged="MyListView_SizeChanged">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0,0,0,0" />
<Setter Property="Margin" Value="0,0,0,0" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<RichEditBox
x:Name="MyRdb"
Width="{Binding ElementName=MyListView, Path=DataContext.RDBWidth}"
Margin="0"
local:BindableREBText.Text="{Binding}"
TextAlignment="Justify"
/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
您能否分享一份SCENSHOT来解释这一点,我们无法复制此问题。@NicoZhu MSFT感谢您的评论。我已经从那个页面复制了代码,但是它设置了宽度和高度,这没有意义,所以现在查看代码并检查它。我现在没有一个示例,但基本上它在列表项中显示了一本小说的每一段,但是RichEditBox会折叠到文本的一行,直到你将鼠标放在上面。如果您仍然无法复制,我将在github上创建一个示例。您的项目工作正常吗?@NicoZhu MSFT,否-正如上面的评论中所说,我已经在这里发布了示例中的代码,其中包含了不应该存在的宽度限制,根据屏幕截图,您似乎也这样做了,它可能会影响行为。另外,为了报告一个问题,x:Bind
不适用于RichEditBox.fontwweight
,因为它适用于其他属性,普通绑定也适用,我想这是一种缺陷。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView x:Name="MyListView" SizeChanged="MyListView_SizeChanged">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0,0,0,0" />
<Setter Property="Margin" Value="0,0,0,0" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<RichEditBox
x:Name="MyRdb"
Width="{Binding ElementName=MyListView, Path=DataContext.RDBWidth}"
Margin="0"
local:BindableREBText.Text="{Binding}"
TextAlignment="Justify"
/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>