我已经创建了一个自定义TaskButton控件,它可以获取图像和文本。该属性设置是这样的:WPF相对路径问题
<custom:TaskButton Text="Calendar" ImagePath="Images/calendar.png" ... />
我的自定义控件类实现文本和ImagePath的性质,以及自定义控制的控制模板(在主题\ Generic.xaml)设置它的内容是这样,使用的RelativeSource对象得到图像路径:
<!-- Button Content -->
<StackPanel>
<Image Source="{Binding Path=ImagePath, RelativeSource={RelativeSource TemplatedParent}}" Width="24" Height="24" Stretch="Fill" Margin="10,0,0,0" />
<TextBlock Text="{TemplateBinding Text}" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Segoe UI" FontWeight="Bold" Margin="6,0,10,0" Foreground="Black" />
</StackPanel>
控制工作在大多数情况下罚款,但在特定的项目,到该按钮的图像的相对路径不能正确解决,不显示按钮图像。这是我到目前为止所了解到的:
我在使用自定义控件时正确输入路径。如果我将图像控件放置在具有相同相对路径的相同设计表面上,则可以正确解析。
问题出在相对路径上。如果我用绝对路径替换相对路径,路径将被正确解析并显示图像。
正如我上面提到的,控制在大多数情况下工作正常。其中一个不起作用的情况是Prism 2.1项目,其中控制在Prism模块中的用户控件上实例化。该模块是一个简单的类库,但它具有WPF项目的所有引用。
任何想法为什么相对路径会失败?在此先感谢您的帮助。
顺便说一句,我知道我可以通过使用控件模板与ContentPresenter完成相同的事情。项目规格需要使用指定属性的自定义控件。 – 2010-01-02 19:10:14
我出来的想法,你可以显示相关的代码是用你的自定义控件创建用户控件吗? – 2010-01-03 10:41:40