Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 属性<;边界>;a<;TextBlock>;缺陷_C#_Wpf_Xaml_Border_Textblock - Fatal编程技术网

C# 属性<;边界>;a<;TextBlock>;缺陷

C# 属性<;边界>;a<;TextBlock>;缺陷,c#,wpf,xaml,border,textblock,C#,Wpf,Xaml,Border,Textblock,我在这里是因为我有一个小问题。我想在文本块周围添加边框。这是我当前的脚本(xaml): 我的问题是:即使我将border属性设置为第一个textblock,它也会应用于我的整个网格,我还没有找到原因 有人知道为什么吗 提前谢谢。 Florian SELVA您尚未在网格中定义任何行或列。从技术上讲,它只有一列和一行,并且您的边框应用于该行/列,因此它似乎环绕整个网格 由于您要明确定位元素,请尝试将替换为您尚未在网格中定义任何行或列。从技术上讲,它只有一列和一行,并且您的边框应用于该行/列,因此

我在这里是因为我有一个小问题。我想在文本块周围添加边框。这是我当前的脚本(xaml):


我的问题是:即使我将border属性设置为第一个textblock,它也会应用于我的整个网格,我还没有找到原因

有人知道为什么吗

提前谢谢。
Florian SELVA

您尚未在
网格中定义任何行或列。从技术上讲,它只有一列和一行,并且您的
边框
应用于该行/列,因此它似乎环绕整个
网格


由于您要明确定位元素,请尝试将
替换为

您尚未在
网格中定义任何行或列。从技术上讲,它只有一列和一行,并且您的
边框
应用于该行/列,因此它似乎环绕整个
网格


由于您仍要显式定位元素,请尝试将
替换为

作为当前场景中的一种解决方法。尝试这种方式,我已将放置属性移动到边框,而不是底层textblock

<Grid>
    <Border Visibility="Visible" BorderBrush="Blue" BorderThickness="1" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="28.96" Width="980">
        <TextBlock Visibility="Visible" Foreground="Blue" TextAlignment="Center" FontSize="20" TextWrapping="Wrap"><Run Language="fr-fr" Text="Fiche détails de la capitalisation"/></TextBlock>
    </Border>
    <TextBlock HorizontalAlignment="Left" Margin="10,49.05,0,0" TextWrapping="Wrap" VerticalAlignment="Top"><Run Language="fr-fr" Text="édité le:"/></TextBlock>
    <TextBlock HorizontalAlignment="Left" Margin="390,49.05,0,0" TextWrapping="Wrap" VerticalAlignment="Top"><Run Language="fr-fr" Text="Rafraichissement des données:"/></TextBlock>
</Grid>

作为当前场景中的一种解决方法,请尝试这种方式,我已将放置属性移动到边框,而不是底层textblock

<Grid>
    <Border Visibility="Visible" BorderBrush="Blue" BorderThickness="1" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="28.96" Width="980">
        <TextBlock Visibility="Visible" Foreground="Blue" TextAlignment="Center" FontSize="20" TextWrapping="Wrap"><Run Language="fr-fr" Text="Fiche détails de la capitalisation"/></TextBlock>
    </Border>
    <TextBlock HorizontalAlignment="Left" Margin="10,49.05,0,0" TextWrapping="Wrap" VerticalAlignment="Top"><Run Language="fr-fr" Text="édité le:"/></TextBlock>
    <TextBlock HorizontalAlignment="Left" Margin="390,49.05,0,0" TextWrapping="Wrap" VerticalAlignment="Top"><Run Language="fr-fr" Text="Rafraichissement des données:"/></TextBlock>
</Grid>

您要实现的是第一行有一个文本框,第二行有两个文本框。除非要定义网格列和行,否则必须使用stackpanel和dock panel

通过设置网格宽度,可以控制所有内容。如果要在编辑和刷新之间留出空间,则只需更改停靠面板上的上边距,如
Margin=“0,20,0,0”
,如果要在细节文本块和边框上留出空间,则应在边框上添加
填充
,以防止内部任何内容接近值集

<Grid Width="500">
        <StackPanel>
            <Border BorderBrush="Blue" BorderThickness="1">
                <TextBlock Foreground="Blue" TextAlignment="Center" FontSize="20" TextWrapping="Wrap"><Run Language="fr-fr" Text="Fiche détails de la capitalisation"/></TextBlock>
            </Border>
            <DockPanel LastChildFill="True">
                <TextBlock TextWrapping="Wrap" VerticalAlignment="Top"><Run Language="fr-fr" Text="édité le:"/></TextBlock>
                <TextBlock TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Right"><Run Language="fr-fr" Text="Rafraichissement des données:"/></TextBlock>
            </DockPanel>
        </StackPanel>
    </Grid>

您要实现的是第一行有一个文本框,第二行有两个文本框。除非要定义网格列和行,否则必须使用stackpanel和dock panel

通过设置网格宽度,可以控制所有内容。如果要在编辑和刷新之间留出空间,则只需更改停靠面板上的上边距,如
Margin=“0,20,0,0”
,如果要在细节文本块和边框上留出空间,则应在边框上添加
填充
,以防止内部任何内容接近值集

<Grid Width="500">
        <StackPanel>
            <Border BorderBrush="Blue" BorderThickness="1">
                <TextBlock Foreground="Blue" TextAlignment="Center" FontSize="20" TextWrapping="Wrap"><Run Language="fr-fr" Text="Fiche détails de la capitalisation"/></TextBlock>
            </Border>
            <DockPanel LastChildFill="True">
                <TextBlock TextWrapping="Wrap" VerticalAlignment="Top"><Run Language="fr-fr" Text="édité le:"/></TextBlock>
                <TextBlock TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Right"><Run Language="fr-fr" Text="Rafraichissement des données:"/></TextBlock>
            </DockPanel>
        </StackPanel>
    </Grid>



这是一种不好的方法。在这一点上,他最好使用canvas@Franck实际上,这个建议是基于OP当前的方法,但是即使使用canvas,他可能仍然需要设置类似的属性,以便将边框正确地放置在画布中。所以我觉得值得分享。事实上,我对另一个答案也投了赞成票。谢谢你的回答。我已经试过了,效果很好,但我认为它对边距不是很有效。网格内的边距不是一个好方法。我理解他的回答是围绕着你的请求而构建的,它对你来说很有用,但是你应该真正检查一下是否使用了@Grant said.+1来考虑OP方法:),并且仍然设法使它起作用。荣誉这是一种不好的方法。在这一点上,他最好使用canvas@Franck实际上,这个建议是基于OP当前的方法,但是即使使用canvas,他可能仍然需要设置类似的属性,以便将边框正确地放置在画布中。所以我觉得值得分享。事实上,我对另一个答案也投了赞成票。谢谢你的回答。我已经试过了,效果很好,但我认为它对边距不是很有效。网格内的边距不是一个好方法。我理解他的回答是围绕着你的请求而构建的,它对你来说很有用,但是你应该真正检查一下是否使用了@Grant said.+1来考虑OP方法:),并且仍然设法使它起作用。荣誉感谢您的评论,即使我使用多个边框属性,此解决方案也能完美工作。感谢您的评论,即使我使用多个边框属性,此解决方案也能完美工作。谢谢您的回答,弗兰克。我将保留此解决方案,以防canvas解决方案在将来不起作用。您好。只是为了确保,您可以用它来帮助您,但仍然强烈建议您在Grid和
GridRowDefinition
/
GridColumnDefinition
上查看一些教程或小帮助文件,我正在做一个使用GridRowDefinition和GridColumnDefinition的windows phone小应用程序,我只是不习惯在WPF上这么做谢谢你的回答,弗兰克。我将保留此解决方案,以防canvas解决方案在将来不起作用。您好。只是为了确保,您可以用它来帮助您,但仍然强烈建议您在Grid和
GridRowDefinition
/
GridColumnDefinition
上查看一些教程或小帮助文件,我正在做一个使用GridRowDefinition和GridColumnDefinition的windows phone小应用程序,我只是不习惯在WPF上使用它