Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455

    [C#+WPF] Cambiare scritte controlli

    Ciao a tutti,

    ho creato un pulsante in Microsoft Expression Blend 4 e lo ho importato su visual studio in un applicazione WPF.

    Ora, non ho idea di come fare a cambiare il testo di esso, credo che devo fare qualcosa con i DataContext ma non ho proprio idea di cosa fare.

    Ho cercato online ma sulle applicazioni WPF si trova pochissimo.

    Sapete dirmi come fare?

  2. #2
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Ciao...in generale per cambiare il testo all'interno di un pulsante devi agire sulla priprietà "Content".

    codice:
    button.Content = "testo del pulsante";
    Crestron Control Systems and AMX Control Systems Programmer

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Sapevo che centrava il Content ma purtroppo se lo uso la grafica del pulsante si sballa completamente

  4. #4
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Prova a postare il codice xaml relativo al tuo pulsante.
    Crestron Control Systems and AMX Control Systems Programmer

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    codice:
    <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"
    	x:Class="CrimeWorld_Design.CustomButton"
    	x:Name="UserControl"
    	d:DesignWidth="203" d:DesignHeight="26">
    	<UserControl.Resources>
    		<Style x:Key="myCustomButton" TargetType="{x:Type Button}">
    			<Setter Property="Template">
    				<Setter.Value>
    					<ControlTemplate TargetType="{x:Type Button}">
    						<Grid>
    							<Border x:Name="border" BorderBrush="Black" BorderThickness="1" CornerRadius="3">
    								<Border.Background>
    									<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    										<GradientStop Color="#FF4D4D4D" Offset="0"/>
    										<GradientStop Color="#FF414141" Offset="1"/>
    										<GradientStop Color="Black" Offset="0.504"/>
    									</LinearGradientBrush>
    								</Border.Background>
    							</Border>
    							<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
    						</Grid>
    						<ControlTemplate.Triggers>
    							<Trigger Property="IsFocused" Value="True"/>
    							<Trigger Property="IsDefaulted" Value="True"/>
    							<Trigger Property="IsMouseOver" Value="True">
    								<Setter Property="Background" TargetName="border">
    									<Setter.Value>
    										<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    											<GradientStop Color="#FFD4E6FF" Offset="0"/>
    											<GradientStop Color="#FF414141" Offset="1"/>
    											<GradientStop Color="Black" Offset="0.5"/>
    										</LinearGradientBrush>
    									</Setter.Value>
    								</Setter>
    							</Trigger>
    							<Trigger Property="IsPressed" Value="True">
    								<Setter Property="BorderThickness" TargetName="border" Value="2,2,1,2"/>
    								<Setter Property="Background" TargetName="border">
    									<Setter.Value>
    										<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    											<GradientStop Color="#FF252525" Offset="0"/>
    											<GradientStop Color="#FF1D1D1D" Offset="1"/>
    											<GradientStop Color="Black" Offset="0.504"/>
    										</LinearGradientBrush>
    									</Setter.Value>
    								</Setter>
    							</Trigger>
    							<Trigger Property="IsEnabled" Value="False"/>
    						</ControlTemplate.Triggers>
    					</ControlTemplate>
    				</Setter.Value>
    			</Setter>
    		</Style>
    	</UserControl.Resources>
    
    	<Grid x:Name="LayoutRoot">
    		<Button Content="Text" Style="{DynamicResource myCustomButton}" FontSize="13.333" FontFamily="Tahoma" Foreground="#FFC4C4C4" FontWeight="Bold"/>
    	</Grid>
    </UserControl>
    Qui il content c'è, però questo codice appartiene proprio al controllo, mentre se inizio ad inserire questo pulsante in giro nelle varie finestre il codice XAML che mi genere è questo:

    codice:
    <local:CustomButton Grid.Column="1" Height="28" HorizontalAlignment="Left" Margin="428,187,0,0" x:Name="customButton1" VerticalAlignment="Top" Width="173" />

  6. #6
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Attento perché per come hai definito il tuo UserControl, non ha niente a che fare con un "Button". Tu hai definito uno UserControl e, all'interno della sua proprietà Content, hai inserito una Grid. La Grid ha a sua volta un Button tra i suoi "Children".

    Quando nella tua applicazione importi il tuo CustomButton e (ad esempio) imposti la sua proprietà Content:
    codice:
    <local:CustomButton Content="Text"/>
    praticamente non fai altro che sostituire questa parte
    codice:
    <Grid x:Name="LayoutRoot">
    <Button Content="Text" Style="{DynamicResource myCustomButton}" FontSize="13.333" FontFamily="Tahoma" Foreground="#FFC4C4C4" FontWeight="Bold"/>
    </Grid>
    semplicemente con la scritta "Text".
    Crestron Control Systems and AMX Control Systems Programmer

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.