2013-08-31 7 views
7

में "[उपयोगकर्ता नियंत्रण]" त्रुटि का उदाहरण नहीं बना सकता है मैंने निम्न उपयोगकर्ता नियंत्रण बनाया है। । जब मैंने इसे एक XAML खिड़की में जोड़ने के लिए, मैं त्रुटि ucAppItem "" का एक उदाहरण नहीं बना सकता "मिल रहा टूलबार से खिड़की पर उपयोगकर्ता नियंत्रण घसीटाडिजाइनर

उपयोगकर्ता नियंत्रण की XAML निम्नानुसार है:।

विंडो के
<UserControl x:Class="Demos.ucAppItem" 
      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" 
      mc:Ignorable="d" Width="852" Height="215"> 
    <Grid> 

     <Label Name="lblTitle" Content="Title" HorizontalAlignment="Left" Margin="233,10,0,0" VerticalAlignment="Top" FontSize="22" FontFamily="Arial"/> 


     <Image Width="40" Height="40" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,80,0"> 
      <Image.Style> 
       <Style TargetType="{x:Type Image}"> 
        <Setter Property="Source" Value="pack://siteoforigin:,,,/arrow2.png"/> 
        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Source" Value="pack://siteoforigin:,,,/arrow1.png"/> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Image.Style> 
     </Image> 
     <Label x:Name="lblRun" Content="Run" HorizontalAlignment="Right" Margin="0,88,35,0" VerticalAlignment="Top" Foreground="#FF2EAADC" FontSize="20"> 
      <Label.Style> 
       <Style TargetType="{x:Type Label}"> 
        <Setter Property="Foreground" Value="#FF2EAADC"/> 
        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Foreground" Value="#006d9e"/> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Label.Style> 
     </Label> 
    </Grid> 
</UserControl> 

XAML इस प्रकार है:!

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:Demos" x:Class="Demos.Window1" 
     Title="Window1" Height="487" Width="854"> 
    <Grid> 

     <local:ucAppItem/> 

    </Grid> 
</Window> 

अग्रिम में आपकी मदद के लिए धन्यवाद pack://siteoforigin:,,,/arrow2.png के बजाय आपका वास्तविक लिखने की ज़रूरत

+0

मेरे लिए काम किया। क्या आपके पास उपयोगकर्ता नियंत्रण के पीछे कोड में कुछ लिखा है? – Nitin

उत्तर

4

@ एनाटोली निकोलेव - आपकी मदद के लिए धन्यवाद! लेबल पर आपके पॉइंटर ने उस मुद्दे को ठीक किया जो मेरे पास था और आप छवि के बारे में सही थे। मैं जवाब के रूप में आपकी प्रतिक्रिया को चिह्नित करूंगा। यह वह स्रोत था जो मुद्दा था।

मेरे लेबल अब के रूप में परिभाषित किया गया है:

 <Image> 
      <Image.Style> 
       <Style TargetType="{x:Type Image}"> 
        <Setter Property="Source" Value="{StaticResource arrow2}"/> 
        <Setter Property="Height" Value="40"/> 
        <Setter Property="Width" Value="40"/> 
        <Setter Property="VerticalAlignment" Value="Center"/> 
        <Setter Property="Margin" Value="0,0,80,0"/> 
        <Setter Property="HorizontalAlignment" Value="Right"/> 
        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Source" Value="{StaticResource arrow1}"/> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Image.Style> 
     </Image> 

, इस के रूप में सेट और मैं संसाधनों (App.xaml फ़ाइल में सेट):

<Label x:Name="lblRun" Content="Run" HorizontalAlignment="Right" Margin="0,88,35,0" VerticalAlignment="Top" FontSize="20"> 
     <Label.Style> 
      <Style TargetType="{x:Type Label}"> 
       <Setter Property="Foreground" Value="#FF2EAADC"/> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Foreground" Value="#006d9e"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Label.Style> 
    </Label> 

मेरी छवि अब के रूप में परिभाषित किया गया है:

<Application x:Class="demos.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <BitmapImage x:Key="arrow1" UriSource="arrow1.png" /> 
     <BitmapImage x:Key="arrow2" UriSource="arrow2.png" /> 
    </Application.Resources> 
</Application> 
+0

मैं ImageBrushes का उपयोग करके कुछ बटनों के साथ एक समान समस्या में भाग गया। ब्रश संसाधनों को UserControl.Resources और एप्लिकेशन में से बाहर ले जाना। आपके उदाहरण के रूप में स्रोत मुख्य टुकड़ा बन गए जो मैं गायब था। – jmbpiano

3

पहले, 01,235,और सुनिश्चित करें कि फ़ाइल, एक संसाधन के रूप में इस परियोजना में मौजूद इस तरह बनाने के लिए (MSDN):

pack://application:,,,/arrow1.png 

दूसरे, लेबल lblRun, क्योंकि आप इस Foreground मूल्य स्थानीय स्तर पर सेट काम नहीं करेगा, में के लिए ट्रिगर शैली

<Label x:Name="lblRun" Foreground="#FF2EAADC" FontSize="20" ... /> 

कोशिश यह Foreground स्थानीय मूल्य को हटाने और Style सेटर उपयोग करने के लिए:

012 WPF ट्रिगर शैली की तुलना में एक उच्च प्राथमिकता के स्थानीय मूल्य है कि मूल्य प्राथमिकता दी जाएगी ( MSDN) की एक सूची है,
<Label x:Name="lblRun" Content="Run" HorizontalAlignment="Right" Margin="0,88,35,0" VerticalAlignment="Top" FontSize="20"> 
    <Label.Style> 
     <Style TargetType="{x:Type Label}"> 
      <Setter Property="Foreground" Value="#FF2EAADC"/> 

      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Foreground" Value="#006d9e"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Label.Style> 
</Label> 
+0

उन पॉइंटर्स के लिए बहुत बहुत धन्यवाद! मैंने उन परिवर्तन किए लेकिन दुर्भाग्यवश यह अभी भी डिजाइनर त्रुटि देता है! –

+0

@ रोब मैककेबे: आश्चर्यजनक रूप से, मेरे लिए यह काम करता है। एक ही प्रकार की त्रुटि? यदि आप 'छवि' नियंत्रण पर टिप्पणी करते हैं, तो त्रुटि गायब हो जाएगी? –

+0

हाँ, अब मैं बिना किसी त्रुटि के लेबल को जोड़ सकता हूं। इसकी सिर्फ छवि समस्या का कारण बन रही है। यहां मेरे पास है: –

संबंधित मुद्दे