0

我做了一个这样的简单用户控件,以支持按钮内的图像和文本:

<UserControl x:Class="wpf_Templates.UC.rb"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         DataContext="{Binding RelativeSource={RelativeSource Self}}" >
<Grid>
    <Button Name="rbutton1">
        <StackPanel Orientation="{Binding Layout}" Background="Beige">
            <Image Source="{Binding Image}" />
            <TextBlock Text="{Binding Text}" Margin="3,3,0,0" HorizontalAlignment="Center"/>
        </StackPanel>

    </Button>
</Grid>

它有两个 DependencyProperty:文本、图像。

在 MainWindow.xaml 我像这样实例化它

 <lcl:rb Text="Rb" Image="Resources\Images\Exit.gif" MinWidth="40"></lcl:rb>

现在,当应用程序运行时,我确实看到了带有文本和图像的按钮,但我在设计模式下看到了空框。为什么 ?

谢谢,阿维。

4

2 回答 2

1

在设计时,路径略有不同,因为它已本地化到页面

如果用户控件位于子目录文件夹中,则绑定到路径Resources\Images\Exit.gif将失败,因为设计器位于没有子文件夹的控件Resources目录中。

如果您添加..\路径以表示从子文件夹(作为测试)对 的访问..\Resources\Images\Exit.gif,它可能会使其在页面的设计模式下工作,但在运行时可能会失败。

无论如何,您都可以决定如何在设计模式下使用图像。

于 2016-06-16T21:40:28.557 回答
0

您可以将以下属性添加到 MainWindow.xaml 中的 Window 声明:

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" 

并在您的控制声明中:

<lcl:rb Text="Rb" 
        Image="Resources\Images\Exit.gif" 
        d:Image="Resources\Images\Exit.gif"  
        MinWidth="40">
</lcl:rb>

这样设计师就知道要使用什么了。

于 2012-11-19T08:05:51.087 回答