nero_lux Posted September 9, 2009 at 10:20 PM Report Share #286288 Posted September 9, 2009 at 10:20 PM Boa Noite, estou com um problema não consigo criar um botão com uma imagem associada (como UserControl), ou seja quando associo o meu Control ao meu Window fica sem imagem. O que estou a fazer de errado? <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:local="clr-namespace:WpfControlLibrary1" x:Class="WpfControlLibrary1.BtnOkUsrCrl" x:Name="UserControl" Width="65" Height="55"> <Grid x:Name="LayoutRoot" RenderTransformOrigin="0.5,0.5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" MinWidth="4.4"/> <ColumnDefinition Width="Auto" MinWidth="95.6"/> </Grid.ColumnDefinitions> <Grid.RenderTransform> <TransformGroup> <ScaleTransform/> <SkewTransform/> <RotateTransform Angle="-0.326"/> <TranslateTransform/> </TransformGroup> </Grid.RenderTransform> <Button x:Name="BtnUsrCrl" Width="50" Height="45" Background="{x:Null}" BorderThickness="0" Margin="7,3,-7,7"> <StackPanel x:Name="SckPnlUsrCrl"> <Image x:Name="ImgBtnUsrCrl" Source="ImgControl/ok.png"></Image> </StackPanel> </Button> </Grid> <!-- A button style that displays an attached image --> </UserControl> Link to comment Share on other sites More sharing options...
Guest id194 Posted September 10, 2009 at 02:30 AM Report Share #286293 Posted September 10, 2009 at 02:30 AM Isto pouco tem a ver com C#, isto é XAML (pelo que me parece) e talvez tenhas mais sorte se referires isso no título do tópico. Eu cheguei aqui induzido em erro porque de XAML pouco percebo mas nunca pensei que a dúvida fosse essa. Link to comment Share on other sites More sharing options...
nero_lux Posted September 10, 2009 at 11:28 AM Author Report Share #286304 Posted September 10, 2009 at 11:28 AM O XAML é só para as pessoas saber de que forma é que criei o meu botão com imagem. Link to comment Share on other sites More sharing options...
Caio Proiete Posted September 13, 2009 at 02:49 AM Report Share #286713 Posted September 13, 2009 at 02:49 AM Boas, Em uma vista rápida, não me parece haver nada errado com o código XAML do seu UserControl que faria com que a imagem não aparecesse. Verifique se o item "Build Action" nas propriedades da sua imagem lá no UserControl, está marcado como "Resource", para que a imagem seja incorporada nos resources da sua biblioteca, e verifique também se não existe nenhum outro controlo a sobrepor o seu botão lá no Window... Se estiver em um grid- Se possível, mostre-nos também como ficou o código XAML para declarar o controlo lá no Window. Cumprimentos, Caio Proiete Caio Proiete http://caioproiete.net http://netponto.org Link to comment Share on other sites More sharing options...
nero_lux Posted September 14, 2009 at 01:07 PM Author Report Share #286934 Posted September 14, 2009 at 01:07 PM Bom Dia, seu eu colocar o item "Build Action" como "Resource" dá-me logo um erro ao compilar o User Control ('WpfControlLibrary1.BtnOkUsrCrl' does not contain a definition for 'InitializeComponent' and no extension method 'InitializeComponent' accepting a first argument of type 'WpfControlLibrary1.BtnOkUsrCrl' could be found (are you missing a using directive or an assembly reference?). Em relação a declaração do UserControl no Window, eis o código: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:MyControls="clr-namespace:WpfControlLibrary1;assembly=WpfControlLibrary1" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="GestCalWPF.WindowLogin" x:Name="Window" Title="Autenticação - GESTCAL.NET" Width="475" Height="293" mc:Ignorable="d" BorderThickness="0" Visibility="Visible" ResizeMode="NoResize" Closing="Window_Closing" Loaded="Window_Loaded"> <Window.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black"/> <GradientStop Color="#FFF8F6F6" Offset="1"/> </LinearGradientBrush> </Window.Background> <Grid x:Name="LayoutRoot"> <Grid.RowDefinitions> <RowDefinition Height="0.163*"/> <RowDefinition Height="0.837*"/> </Grid.RowDefinitions> <Grid.Background> <LinearGradientBrush EndPoint="312,442" StartPoint="312,0" MappingMode="Absolute" SpreadMethod="Repeat"> <GradientStop Color="Black" Offset="0.017"/> <GradientStop Color="White" Offset="1"/> <GradientStop Color="#FFF8F0F0" Offset="1"/> <GradientStop Color="#FF2C2B2B" Offset="0.457"/> <GradientStop Color="#FF373737" Offset="0.728"/> <GradientStop Color="#FF393838" Offset="0.961"/> </LinearGradientBrush> </Grid.Background> <MyControls:ContainerLogin Margin="0,-20,23,107" HorizontalAlignment="Right" Width="240" Grid.Row="1"/> <MyControls:LblUsrCnrControl x:Name="LblUsr" Margin="228.007,8,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="50.993" Grid.Row="1" /> <MyControls:TxtUsrCnrControl x:Name="TxtUsr" Margin="0,14.15,42,0" Height="22" VerticalAlignment="Top" HorizontalAlignment="Right" Width="144" Grid.Row="1"> </MyControls:TxtUsrCnrControl> <MyControls:PwdTxtUsrCrlClasse x:Name="TxtPwd" Margin="0,60,43,0" HorizontalAlignment="Right" VerticalAlignment="Top" Height="22" Grid.Row="1" Width="144"/> <MyControls:LblUsrCnrControl x:Name="LblPwd" Margin="227.007,54,191,0" Height="28" RenderTransformOrigin="1.745,0.214" VerticalAlignment="Top" d:LayoutOverrides="Height" Grid.Row="1"/> <MyControls:BtnOkUsrCrl x:Name="BtnOk" HorizontalAlignment="Right" Margin="0,0,122,38" VerticalAlignment="Bottom" Grid.Row="1" d:LayoutOverrides="Width, Height"/> </Grid> </Window> Link to comment Share on other sites More sharing options...
Carloz Posted September 14, 2009 at 03:15 PM Report Share #286945 Posted September 14, 2009 at 03:15 PM A Window está na mesma pasta que o UserControl que queres adicionar? Estás a fazer isso tudo num único projecto? p.s. Tens de meter as tags "code" no código e não nos teus comentários 😉 . Edit: Experimenta em vez de: <Image x:Name="ImgBtnUsrCrl" Source="ImgControl/ok.png"></Image> Fazer: <Image x:Name="ImgBtnUsrCrl" Source="pack://application:,,,/Resources/ImgControl/ok.png" /> Neste caso a tua imagem tem de estar na pasta ImgControl, que por sua vez deve estar na pasta Resources. Para além disso, selecciona a tua imagem e define a Build Action como Resource. "Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV) Link to comment Share on other sites More sharing options...
nero_lux Posted September 14, 2009 at 05:13 PM Author Report Share #286965 Posted September 14, 2009 at 05:13 PM Nesse caso, que ainda estou em fase de testes, tenho dois projectos diferentes um para o UserControl e outro para WPFApplication. Desculpa a minha ignorância mas não percebi a tua Resposta. Tenho que adicionar uma Tag referente a imagem??? Mas no meu control a imagem está associado a um botão <Button x:Name="BtnUsrCrl" Width="50" Height="45" Background="{x:Null}" BorderThickness="0" Margin="7,3,-7,7"> <StackPanel x:Name="SckPnlUsrCrl"> <Image x:Name="ImgBtnUsrCrl" Source="ImgControl/ok.png"></Image> </StackPanel> </Button> e a imagem está dentro de uma pasta desingada ImgControl. Link to comment Share on other sites More sharing options...
Carloz Posted September 14, 2009 at 07:25 PM Report Share #286989 Posted September 14, 2009 at 07:25 PM Quando falei nas tags estava-me a referir ao teu post anterior. Esquece isso. Tenta fazer o que disse no meu post após "Edit". Cumps "Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV) Link to comment Share on other sites More sharing options...
nero_lux Posted September 16, 2009 at 09:27 AM Author Report Share #287261 Posted September 16, 2009 at 09:27 AM Segui o teu conselho mas ao colocar a propriedade do "Build Action" a Resource ocorre um erro: BtnOkUsrCrl' does not contain a definition for 'InitializeComponent' and no extension method 'InitializeComponent' accepting a first argument of type 'WpfControlLibrary1.BtnOkUsrCrl' could be found (are you missing a using directive or an assembly reference?) Link to comment Share on other sites More sharing options...
Carloz Posted September 16, 2009 at 02:00 PM Report Share #287286 Posted September 16, 2009 at 02:00 PM Na classe do teu controlo, não tens uma chamada à função "InitializeComponent();"? "Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV) Link to comment Share on other sites More sharing options...
nero_lux Posted September 16, 2009 at 04:06 PM Author Report Share #287310 Posted September 16, 2009 at 04:06 PM Tenho, eis o código da Minha Classe using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfControlLibrary1 { /// <summary> /// Interaction logic for BtnOkUsrCrl.xaml /// </summary> public partial class BtnOkUsrCrl : UserControl { public BtnOkUsrCrl() { this.InitializeComponent(); } } } Link to comment Share on other sites More sharing options...
Carloz Posted September 16, 2009 at 04:10 PM Report Share #287311 Posted September 16, 2009 at 04:10 PM Experimenta sem o "this.". Já agora...tens de colocar a propriedade "Build Action" da imagem e não do controlo. Do lado direito no ecrã deves ver uma pasta chamada "Resources" e lá dentro deve estar a tua imagem. Selecciona-a e depois altera a dita propriedade. Se por acaso alteraste a propriedade do controlo, volta a repor o que estava. "Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV) Link to comment Share on other sites More sharing options...
nero_lux Posted September 17, 2009 at 03:54 PM Author Report Share #287475 Posted September 17, 2009 at 03:54 PM Obrigado, era mesmo isso o problema da Imagem. Só tenho mais uma dúvida o meu botão com imagem no Window não tem o método Click, o que devo de fazer? Link to comment Share on other sites More sharing options...
Carloz Posted September 17, 2009 at 04:43 PM Report Share #287480 Posted September 17, 2009 at 04:43 PM Selecciona a imagem na Design Window, ou põe o cursor do rato em cima de "<Image..." no código XAML. Depois basta ires às propriedades do lado direito e deves ver lá um icon com um relâmpago. Clica e aparecem-te todos os eventos possíveis para a imagem. Procura o evento "Click" e clica duas vezes para gerar o código do evento automaticamente. "Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV) Link to comment Share on other sites More sharing options...
nero_lux Posted September 21, 2009 at 11:13 AM Author Report Share #287993 Posted September 21, 2009 at 11:13 AM Esta era básica, pensava que ao criar um UserControl de um Botão ele automaticamente herdasse os métodos do pai. Porque se eu for ao meu projecto onde estou a usar o meu UserControl não tenho a propriedade do click, apesar de ter adicionado o método no UserControl. Obrigado pela ajuda! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now