我正在使用以下代码将Textblock写入Xaml页面:
Sale.Name = "Price";
Sale.Text = "$200";
deatilLayout.Children.Add(Sale);
Grid.SetRow(Sale, 1);这会成功地将数据放在xaml页面上,但不是放在正确的位置。
<FlipView
x:Name="flipView"
AutomationProperties.AutomationId="ItemsFlipView"
AutomationProperties.Name="Item Details"
TabIndex="1"
Grid.RowSpan="2"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}">
<FlipView.ItemContainerStyle>
<Style TargetType="FlipViewItem">
<Setter Property="Margin" Value="0,137,0,70"/>
</Style>
</FlipView.ItemContainerStyle>
<FlipView.ItemTemplate>
<DataTemplate>
<!--
UserControl chosen as the templated item because it supports visual state management
Loaded/unloaded events explicitly subscribe to view state updates from the page
-->
<UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
<ScrollViewer x:Name="scrollViewer" Style="{StaticResource HorizontalScrollViewerStyle}" Grid.Row="1">
<!-- Content is allowed to flow across as many columns as needed -->
<common:RichTextColumns x:Name="richTextColumns" Margin="117,0,117,47">
<RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}" IsTextSelectionEnabled="False">
<Paragraph LineStackingStrategy="MaxHeight" Margin="0,0,0,180">
<InlineUIContainer>
<Image x:Name="image" MaxHeight="480" Margin="0,20,0,100" Stretch="Uniform" Source="{Binding Image}" AutomationProperties.Name="{Binding Title}"/>
</InlineUIContainer>
</Paragraph>
<Paragraph Margin="0,0,0,30" LineHeight="65" FontFamily="Global User Interface">
<Run FontSize="52" FontWeight="Thin" Text="{Binding Title}" />
</Paragraph>
<Paragraph Margin="0,0,0,50">
<Run Text="TT $" FontSize="24" FontWeight="Thin"/>
<Run FontSize="30" FontWeight="Normal" Text="{Binding Subtitle}"/>
</Paragraph>
<Paragraph x:Name="price" x:FieldModifier="public" />
<Paragraph Margin="0,0,0,40">
<Run FontSize="27" FontWeight="Normal" Text="{Binding Weight}"/>
</Paragraph>
<Paragraph Margin="0,0,0,40" LineHeight="40">
<Run FontSize="35" FontWeight="Normal" Text="{Binding Description}"/>
</Paragraph>
<Paragraph Margin="0,0,0,40" LineHeight="30">
<!--<Run FontSize="22" FontWeight="SemiLight" Text="{Binding Category}"/>-->
</Paragraph>
</RichTextBlock>
<!-- Additional columns are created from this template -->
<common:RichTextColumns.ColumnTemplate>
<DataTemplate>
<RichTextBlockOverflow Width="560" Margin="30,0,0,0">
<RichTextBlockOverflow.RenderTransform>
<TranslateTransform X="-1" Y="4"/>
</RichTextBlockOverflow.RenderTransform>
</RichTextBlockOverflow>
</DataTemplate>
</common:RichTextColumns.ColumnTemplate>
</common:RichTextColumns>
<VisualStateManager.VisualStateGroups>
<!-- Visual states reflect the application's view state inside the FlipView -->
<VisualStateGroup x:Name="ApplicationViewStates">
<VisualState x:Name="FullScreenLandscape"/>
<VisualState x:Name="Filled"/>
<!-- Respect the narrower 100-pixel margin convention for portrait -->
<VisualState x:Name="FullScreenPortrait">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="richTextColumns" Storyboard.TargetProperty="Margin">
<DiscreteObjectKeyFrame KeyTime="0" Value="97,0,87,57"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="image" Storyboard.TargetProperty="MaxHeight">
<DiscreteObjectKeyFrame KeyTime="0" Value="400"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<!-- When snapped, the content is reformatted and scrolls vertically -->
<VisualState x:Name="Snapped">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="richTextColumns" Storyboard.TargetProperty="Margin">
<DiscreteObjectKeyFrame KeyTime="0" Value="17,0,17,57"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="scrollViewer" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource VerticalScrollViewerStyle}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="richTextBlock" Storyboard.TargetProperty="Width">
<DiscreteObjectKeyFrame KeyTime="0" Value="280"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="image" Storyboard.TargetProperty="MaxHeight">
<DiscreteObjectKeyFrame KeyTime="0" Value="160"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</ScrollViewer>
</UserControl>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>我想将数据放在Grid "detailLayout“中的RichTextBlock段落中。
我该怎么做呢?
发布于 2013-11-11 22:56:02
一种方法是,在XAML文件中,将段落元素更改为以下内容:
<Paragraph x:Name="price" />这使得段落实例作为名为"price“的字段对代码隐藏可见。然后,作为示例,您可以使用以下代码在代码隐藏中访问和设置此段落实例的内容:
string textToSet = "Price: $200"; // Replace this value with whatever value you want to
// set in the paragraph.
Run textRun = new Run();
textRun.Text = textToSet;
this.price.Inlines.Add(textRun);然后,如果要清除段落实例的内容,可以在代码隐藏中执行以下操作:
this.price.Inlines.Clear();默认情况下,为XAML页中的元素分配名称时,该元素对外部代码是不可见的。如果需要从XAML页面的代码隐藏之外访问'price‘段落元素,则需要将段落元素的声明更改为以下内容:
<Paragraph x:Name="price" x:FieldModifier="public" />最后要注意的是,如果命名元素在DataTemplate (通常与WPF item控件一起使用)中,则不能访问它们。因此,如果是这种情况,您可能希望使用MVVM方法。
发布于 2013-11-11 22:24:11
为什么不把Grid.Column="“和Grid.Row="”
<Paragraph Grid.Column="0" and Grid.Row="0">
</Paragraph>发布于 2013-11-11 22:52:42
我建议您使用MVVM并尝试以下操作:
<RichTextBlock FontSize="12" FontFamily="Segoe UI" >
<Paragraph >
<Run Text="{Binding Sale.Text}"/> <Run Text="{Binding Sale.Text }"/>
</Paragraph>
</RichTextBlock>如果你没有使用MVVM,你将不得不创建一个"Run“对象,插入文本,并将其添加到RichTextBlock的末尾。
https://stackoverflow.com/questions/19908402
复制相似问题