Changeset 1893 for trunk


Ignore:
Timestamp:
Sep 2, 2010, 1:49:17 PM (11 years ago)
Author:
schomburg
Message:

added possibility to enter a RSA-Key manually

Location:
trunk/CrypPlugins/PKCS1
Files:
10 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/PKCS1/Library/RsaKey.cs

    r1778 r1893  
    5050        }
    5151
     52        private BigInteger m_Modulus = BigInteger.Zero;
     53        public void setModulus(string value, int radix)
     54        {
     55            this.m_Modulus = new BigInteger(value,radix);
     56            //this.m_RsaKeySize = this.m_Modulus.BitLength;
     57        }
     58
     59        private BigInteger m_PrivKey = BigInteger.Zero;
     60        public void setPrivKey(string value, int radix)
     61        {
     62            this.m_PrivKey = new BigInteger(value,radix);
     63        }
     64
    5265        private BigInteger m_PubExponent = BigInteger.ValueOf(3); // default
    53         public int PubExponent
     66        public int PubExponent //TODO ändern in String
    5467        {
    5568            set
     
    5972            }
    6073            get { return this.m_PubExponent.IntValue; }
     74        }
     75
     76        public void setInputParams()
     77        {
     78            AsymmetricKeyParameter publicKey = new RsaKeyParameters(false, this.m_Modulus, this.m_PubExponent);
     79            AsymmetricKeyParameter privateKey = new RsaKeyParameters(true, this.m_Modulus, this.m_PrivKey);
     80            this.keyPair = new AsymmetricCipherKeyPair(publicKey, privateKey);
     81
     82            this.m_bRsaKeyGenerated = true;
     83            OnRaiseKeyGenerated(ParameterChangeType.RsaKey);
    6184        }
    6285
  • trunk/CrypPlugins/PKCS1/Library/RsaSig.cs

    r1778 r1893  
    3838                // RSA Schlüssellänge setzen für Methode in Oberklasse
    3939                this.m_KeyLength = RsaKey.Instance.RsaKeySize;
    40 
     40               
    4141                IAsymmetricBlockCipher signerPkcs1Enc = new Pkcs1Encoding(new RsaEngine());
    4242                signerPkcs1Enc.Init(true, RsaKey.Instance.getPrivKey());
  • trunk/CrypPlugins/PKCS1/OnlineHelp/HelpFiles/Help.Designer.cs

    r1888 r1893  
    6262       
    6363        /// <summary>
    64         ///   Looks up a localized string similar to &lt;h2&gt;Bleichenbacher Signatur Zeichen zum ändern&lt;/h2&gt;
     64        ///   Looks up a localized string similar to &lt;h2&gt;Bitposition des Datenblocks&lt;/h2&gt;
     65        ///Bei dem &lt;a href=&quot;help://Gen_Bleichenb_Sig_Tab&quot;&gt;Bleichenbacher Angriff&lt;/a&gt; wird der &lt;a href=&quot;help://Gen_Datablock_Tab&quot;&gt;Datenblock&lt;/a&gt; an eine bestimmte Position &quot;verschoben&quot;.
     66        ///Die Position in Bit kann hier ausgewählt werden. Die Angabe bezieht sich auf den Anfang des Datenblocks, von rechts gezählt.
     67        ///.
     68        /// </summary>
     69        internal static string Gen_Bleichenb_BitPos {
     70            get {
     71                return ResourceManager.GetString("Gen_Bleichenb_BitPos", resourceCulture);
     72            }
     73        }
     74       
     75        /// <summary>
     76        ///   Looks up a localized string similar to &lt;h2&gt;Zeichen zur Nachrichtenänderung&lt;/h2&gt;
     77        ///Im Rahmen der &lt;a href=&quot;help://Gen_Bleichenb_Sig_Tab&quot;&gt;Signaturerzeugung nach Bleichenbacher&lt;/a&gt;, muss unter Umständen die Ausgangsnachricht verändert werden.
     78        ///In dieser Implementierung wird ein einzelnes Zeichen angehangen. Dieses Zeichen kann hier eingegeben werden.
     79        ///.
     80        /// </summary>
     81        internal static string Gen_Bleichenb_ChangeSign {
     82            get {
     83                return ResourceManager.GetString("Gen_Bleichenb_ChangeSign", resourceCulture);
     84            }
     85        }
     86       
     87        /// <summary>
     88        ///   Looks up a localized string similar to &lt;h2&gt;Bleichenbacher-Signatur generieren&lt;/h2&gt;
    6589        ///In diesem Tab wird eine gefälschte Signatur generiert, die in ver- und entschlüsselter Form dargestellt wird.
    6690        ///Eine Signatur, die von fehlerhaften Implementierungen als valide erkannt wird, hat folgende Struktur:
    67         ///&apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HW GG. &lt;/br&gt;
    68         ///Im Einzelnen bedeutet dies:
    69         ///.
    70         /// </summary>
    71         internal static string Gen_Bleichenb_BitPos {
    72             get {
    73                 return ResourceManager.GetString("Gen_Bleichenb_BitPos", resourceCulture);
    74             }
    75         }
    76        
    77         /// <summary>
    78         ///   Looks up a localized string similar to &lt;h2&gt;Bleichenbacher Signatur Zeichen zum ändern&lt;/h2&gt;
    79         ///In diesem Tab wird eine gefälschte Signatur generiert, die in ver- und entschlüsselter Form dargestellt wird.
    80         ///Eine Signatur, die von fehlerhaften Implementierungen als valide erkannt wird, hat folgende Struktur:
    81         ///&apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HW GG. &lt;/br&gt;
    82         ///Im Einzelnen bedeutet dies:
    83         ///.
    84         /// </summary>
    85         internal static string Gen_Bleichenb_ChangeSign {
    86             get {
    87                 return ResourceManager.GetString("Gen_Bleichenb_ChangeSign", resourceCulture);
    88             }
    89         }
    90        
    91         /// <summary>
    92         ///   Looks up a localized string similar to &lt;h2&gt;Bleichenbacher Signatur generieren&lt;/h2&gt;
    93         ///In diesem Tab wird eine gefälschte Signatur generiert, die in ver- und entschlüsselter Form dargestellt wird.
    94         ///Eine Signatur, die von fehlerhaften Implementierungen als valide erkannt wird, hat folgende Struktur:
    95         ///&apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HW GG. &lt;/br&gt;
     91        ///&apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HD GG. &lt;/br&gt;
    9692        ///Im Einzelnen bedeutet dies:
    9793        ///&lt;ul&gt;
     
    109105        /// <summary>
    110106        ///   Looks up a localized string similar to &lt;h2&gt;Datenblock generieren&lt;/h2&gt;
    111         ///In diesem Tab kann der Datenblock einer Signatur generiert werden. Der Datenblock besteht aus den zwei Teilen &quot;Hashfunction-Identifier&quot; und &quot;Hashwert&quot;.
     107        ///In diesem Tab kann der Datenblock einer Signatur generiert werden. Der Datenblock besteht aus den zwei Teilen &quot;Hashfunction-Identifier&quot; und &quot;Hashdigest&quot; (Hashwert).
    112108        ///&lt;ul&gt;
    113109        ///&lt;li&gt;
    114110        ///&lt;strong&gt;Hashfunction-Identifier&lt;br /&gt;&lt;/strong&gt;
    115111        ///Der Hashfunction-Identifier ist ein ASN.1-codierter Datenblock, der unter anderem Informationen wie den Namen der verwendeten Hashfunktion (Algorithmidentifier), die Länge des gesamten Datenblocks, und die Länge des Hashwertes beinhaltet.&lt;/br&gt;
    116         ///Die Länge und der Wert [rest of string was truncated]&quot;;.
     112        ///Die Länge [rest of string was truncated]&quot;;.
    117113        /// </summary>
    118114        internal static string Gen_Datablock_Tab {
     
    126122        ///In diesem Textfeld können Sie angeben, wieviele Iterationen der Algorithmus durchlaufen soll, bevor dieser unterbrochen wird.
    127123        ///Kommt der Algorithmus vorher zu einem Ergebnis endet der Durchlauf und es wird das Ergebnis präsentiert. &lt;/br&gt;
    128         ///Im Durchschnitt sollte der Algorithmus ca. 131072 Iterationen brauchen (wenn SHA-1 als Hashalgorithmus gewählt wurde)..
     124        ///Im Durchschnitt sollte der Algorithmus ca. 131.072 Iterationen brauchen (wenn SHA-1 als Hashalgorithmus gewählt wurde)..
    129125        /// </summary>
    130126        internal static string Gen_Kuehn_Iterations {
     
    135131       
    136132        /// <summary>
    137         ///   Looks up a localized string similar to &lt;h2&gt;Kuehn Signatur generieren&lt;/h2&gt;
     133        ///   Looks up a localized string similar to &lt;h2&gt;Kühn-Signatur generieren&lt;/h2&gt;
    138134        ///In diesem Tab können gefälschte Signaturen, nach der Methode wie sie Ulrich Kühn beschrieben hat, erstellt werden.
    139135        ///Die Signaturen ähneln in der Struktur denen von &lt;a href=&quot;help://Gen_Bleichenb_Sig_Tab&quot;&gt;Bleichenbacher&lt;/a&gt;, machen sich jedoch die Rechenkraft von
    140         ///Computern zu nutze und sind auch auf Signaturen von 1024 Bit Länge anwendbar. Auch hier liegt folgende Struktur zugrunde: &apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HW GG. &lt;/br&gt;
     136        ///Computern zu nutze und sind auch auf Signaturen von 1024 Bit Länge anwendbar. Auch hier liegt folgende Struktur zugrunde: &apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HD GG. &lt;/br&gt;
    141137        ///
    142         ///Die Unterschiede zu den Bleichenbacher Signaturen sind [rest of string was truncated]&quot;;.
     138        ///Die Unterschiede zu den Bleichenbacher-Signaturen sind [rest of string was truncated]&quot;;.
    143139        /// </summary>
    144140        internal static string Gen_Kuehn_Sig_Tab {
     
    150146        /// <summary>
    151147        ///   Looks up a localized string similar to &lt;h2&gt;Signatur generieren&lt;/h2&gt;
    152         ///In diesem Tab wird die komplette PKCS#1-Signatur erstellt. Die Signatur hat folgende Struktur: &apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HW. &lt;/br&gt;
     148        ///In diesem Tab wird die komplette PKCS#1-Signatur erstellt. Die Signatur hat folgende Struktur: &apos;00&apos; &apos;01&apos; PS &apos;00&apos; HI HD. &lt;/br&gt;
    153149        ///Im Einzelnen bedeutet dies:
    154150        ///&lt;ul&gt;
     
    208204       
    209205        /// <summary>
    210         ///   Looks up a localized string similar to &lt;h2&gt;PKCS #1-Signaturgenerierung&lt;/h2&gt;
     206        ///   Looks up a localized string similar to &lt;h2&gt;RSA-Schlüsselgenerierung&lt;/h2&gt;
     207        ///Um PKCS#1-Signaturen erzeugen und validieren zu können, ist ein RSA-Schlüsselpaar notwendig. Dieses besteht aus einem privaten und einem öffentlichen Schlüssel, sowie einem sog. RSA-Modul, der bei beiden Schlüsseln gleich ist.&lt;/br&gt;
     208        ///Für die hier dargestellten Angriffe auf die PKCS#1-Signaturen sind der Wert des öffentlichen Schlüssels und die Länge des Moduls (in Bit) wichtig. Diese Parameter können hier konfiguriert werden. Der öffentliche Schlüssel sowie der Modul werden [rest of string was truncated]&quot;;.
     209        /// </summary>
     210        internal static string KeyGen_Tab {
     211            get {
     212                return ResourceManager.GetString("KeyGen_Tab", resourceCulture);
     213            }
     214        }
     215       
     216        /// <summary>
     217        ///   Looks up a localized string similar to &lt;h2&gt;RSA-Schlüsselgenerierung&lt;/h2&gt;
     218        ///Um PKCS#1-Signaturen erzeugen und validieren zu können, ist ein RSA-Schlüsselpaar notwendig. Dieses besteht aus einem privaten und einem öffentlichen Schlüssel, sowie einem sog. RSA-Modul, der bei beiden Schlüsseln gleich ist.&lt;/br&gt;
     219        ///Für die hier dargestellten Angriffe auf die PKCS#1-Signaturen sind der Wert des öffentlichen Schlüssels und die Länge des Moduls (in Bit) wichtig. Diese Parameter können hier konfiguriert werden. Der öffentliche Schlüssel sowie der Modul werden [rest of string was truncated]&quot;;.
     220        /// </summary>
     221        internal static string KeyInput_Tab {
     222            get {
     223                return ResourceManager.GetString("KeyInput_Tab", resourceCulture);
     224            }
     225        }
     226       
     227        /// <summary>
     228        ///   Looks up a localized string similar to &lt;h2&gt;PKCS#1-Signaturgenerierung&lt;/h2&gt;
    211229        ///&lt;strong&gt;Um PKCS#1-Signaturen erzeugen zu können, muss zuerst ein RSA-Schlüsselpaar in der entsprechenden Maske
    212230        /// erzeugt werden&lt;/strong&gt;&lt;/br&gt;
     
    215233        ///Die PKCS#1-Signaturen basieren auf dem asymmetrischen Verschlüsselungsalgorithmus RSA. Daher ist es notwendig, einen
    216234        ///RSA-Schlüssel zu erzeugen.&lt;/br&gt;
    217         ///Um eine PKCS#1-Signatur zu erzeugen, wird zunächst de [rest of string was truncated]&quot;;.
     235        ///Um eine PKCS#1-Signatur zu erzeugen, wird zunächst der [rest of string was truncated]&quot;;.
    218236        /// </summary>
    219237        internal static string SigGen {
     
    238256       
    239257        /// <summary>
    240         ///   Looks up a localized string similar to &lt;h2&gt;Angriff mit kuerzeren Schlüsseln&lt;/h2&gt;
     258        ///   Looks up a localized string similar to &lt;h2&gt;Angriff mit kuerzeren Schlüsseln (Kühn)&lt;/h2&gt;
    241259        ///&lt;strong&gt;Um den Angriff mit kuerzeren Schlüsseln durchführen zu können, muss zuerst ein RSA-Schlüsselpaar in der entsprechenden Maske erzeugt werden&lt;/strong&gt;&lt;/br&gt;
    242260        ///&lt;strong&gt;Zuerst muss der Datenblock erzeugt werden, bevor die komplette Signatur generiert werden kann!&lt;/strong&gt;
    243261        ///&lt;/br&gt;
    244262        ///&lt;/br&gt;
    245         ///Um eine gefälschte Signatur nach der Kuehn Methode zu erzeugen, wird zunächst der &lt;a href=&quot;help://Gen_Datablock_Tab&quot;&gt;Datenblock&lt;/a&gt; generiert. Dies
    246         ///ist gleich zu dem Datenblock e [rest of string was truncated]&quot;;.
     263        ///Um eine gefälschte Signatur nach der Kühn Methode zu erzeugen, wird zunächst der &lt;a href=&quot;help://Gen_Datablock_Tab&quot;&gt;Datenblock&lt;/a&gt; generiert. Dies
     264        ///ist gleich zu dem Datenb [rest of string was truncated]&quot;;.
    247265        /// </summary>
    248266        internal static string SigGenFakeKuehn {
  • trunk/CrypPlugins/PKCS1/OnlineHelp/HelpFiles/Help.resx

    r1888 r1893  
    149149    <value>de\keygen_pubexponent.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
    150150  </data>
     151  <data name="KeyGen_Tab" type="System.Resources.ResXFileRef, System.Windows.Forms">
     152    <value>de\keygen_tab.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
     153  </data>
     154  <data name="KeyInput_Tab" type="System.Resources.ResXFileRef, System.Windows.Forms">
     155    <value>de\keyinput_tab.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
     156  </data>
    151157  <data name="SigGen" type="System.Resources.ResXFileRef, System.Windows.Forms">
    152158    <value>de\siggen.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
  • trunk/CrypPlugins/PKCS1/OnlineHelp/OnlineHelpActions.cs

    r1888 r1893  
    2323        KeyGen_PubExponent,
    2424        KeyGen_ModulusSize,
     25        KeyGen_Tab,
     26        KeyInput_Tab,
    2527        StartControl,
    2628        Start
  • trunk/CrypPlugins/PKCS1/PKCS1.csproj

    r1888 r1893  
    160160      <DesignTime>True</DesignTime>
    161161    </Compile>
     162    <Compile Include="Resources\lang\Gui\RsaKeyInputCtrl.en.Designer.cs">
     163      <DependentUpon>RsaKeyInputCtrl.en.resx</DependentUpon>
     164      <AutoGen>True</AutoGen>
     165      <DesignTime>True</DesignTime>
     166    </Compile>
     167    <Compile Include="Resources\lang\Gui\RsaKeyInputCtrl.Designer.cs">
     168      <AutoGen>True</AutoGen>
     169      <DesignTime>True</DesignTime>
     170      <DependentUpon>RsaKeyInputCtrl.resx</DependentUpon>
     171    </Compile>
    162172    <Compile Include="Resources\lang\Gui\SigValCtrl.en.Designer.cs">
    163173      <DependentUpon>SigValCtrl.en.resx</DependentUpon>
     
    234244    </Compile>
    235245    <Compile Include="WpfControls\Components\HelpTabItem.cs" />
     246    <Compile Include="WpfControls\Components\KeyGenControl.xaml.cs">
     247      <DependentUpon>KeyGenControl.xaml</DependentUpon>
     248    </Compile>
     249    <Compile Include="WpfControls\Components\KeyInputControl.xaml.cs">
     250      <DependentUpon>KeyInputControl.xaml</DependentUpon>
     251    </Compile>
    236252    <Compile Include="WpfControls\Components\SigGenBleichenbControl.xaml.cs">
    237253      <DependentUpon>SigGenBleichenbControl.xaml</DependentUpon>
     
    264280    </Compile>
    265281    <Compile Include="WpfResources\ErrorsToMessageConverter.cs" />
     282    <Compile Include="WpfResources\NumberFormatRule.cs" />
    266283    <Compile Include="WpfResources\NumberValidationRule.cs" />
    267284    <Compile Include="WpfVisualization\Navigation\Navigation.xaml.cs">
     
    291308      <SubType>Designer</SubType>
    292309    </Page>
     310    <Page Include="WpfControls\Components\KeyGenControl.xaml">
     311      <SubType>Designer</SubType>
     312      <Generator>MSBuild:Compile</Generator>
     313    </Page>
     314    <Page Include="WpfControls\Components\KeyInputControl.xaml">
     315      <SubType>Designer</SubType>
     316      <Generator>MSBuild:Compile</Generator>
     317    </Page>
    293318    <Page Include="WpfControls\Components\SigGenBleichenbControl.xaml">
    294319      <SubType>Designer</SubType>
     
    400425      <Generator>PublicResXFileCodeGenerator</Generator>
    401426      <LastGenOutput>Common.en.Designer.cs</LastGenOutput>
     427    </EmbeddedResource>
     428    <EmbeddedResource Include="Resources\lang\Gui\RsaKeyInputCtrl.en.resx">
     429      <Generator>PublicResXFileCodeGenerator</Generator>
     430      <LastGenOutput>RsaKeyInputCtrl.en.Designer.cs</LastGenOutput>
     431    </EmbeddedResource>
     432    <EmbeddedResource Include="Resources\lang\Gui\RsaKeyInputCtrl.resx">
     433      <Generator>PublicResXFileCodeGenerator</Generator>
     434      <LastGenOutput>RsaKeyInputCtrl.Designer.cs</LastGenOutput>
    402435    </EmbeddedResource>
    403436    <EmbeddedResource Include="Resources\lang\Gui\SigValCtrl.en.resx">
     
    477510  </ItemGroup>
    478511  <ItemGroup>
     512    <Content Include="OnlineHelp\HelpFiles\de\KeyInput_Tab.html">
     513      <SubType>Designer</SubType>
     514    </Content>
     515    <Content Include="OnlineHelp\HelpFiles\de\KeyGen_Tab.html">
     516      <SubType>Designer</SubType>
     517    </Content>
    479518    <Content Include="OnlineHelp\HelpFiles\de\Gen_Bleichenb_BitPos.html">
    480519      <SubType>Designer</SubType>
  • trunk/CrypPlugins/PKCS1/WpfControls/Components/SigGenBleichenbControl.xaml

    r1888 r1893  
    55    xmlns:lang="clr-namespace:PKCS1.Resources.lang.Gui"
    66    VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
    7     <UserControl.Resources>
    8        
    9     </UserControl.Resources>
    107    <Grid>
    118        <Grid.RowDefinitions>
     
    5047                        <RowDefinition Height="auto" />
    5148                    </Grid.RowDefinitions>
    52                     <Label Grid.Row="0" Name="lblRsaKeySizeRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></Label>
    53                     <Label Grid.Row="1" Name="lblPublicKeyRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></Label>
     49                    <Label Grid.Row="0" Name="lblRsaKeySizeRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"> </Label>
     50                    <Label Grid.Row="1" Name="lblPublicKeyRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"> </Label>
    5451                    <DockPanel Grid.Row="2" Margin="5,0,5,5">
    5552                        <ComboBox Name="cbPosDataBlock" IsEditable="False" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></ComboBox>
  • trunk/CrypPlugins/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml

    r1885 r1893  
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4     xmlns:my="clr-namespace:PKCS1.WpfResources"
    5     xmlns:lib="clr-namespace:PKCS1.Library"
     4    xmlns:comp="clr-namespace:PKCS1.WpfControls.Components"
    65    xmlns:lang="clr-namespace:PKCS1.Resources.lang.Gui"
    7     HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
     6    HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White">
    87    <UserControl.Resources>
    9         <my:ErrorsToMessageConverter x:Key="eToMConverter" />
     8        <ResourceDictionary>
     9            <ResourceDictionary.MergedDictionaries>
     10                <ResourceDictionary Source="../../WpfResources/HelpTab.xaml"/>
     11            </ResourceDictionary.MergedDictionaries>
     12        </ResourceDictionary>
    1013    </UserControl.Resources>
    11     <ScrollViewer  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
     14
     15    <DockPanel>
    1216        <Grid>
    1317            <Grid.RowDefinitions>
    14             <RowDefinition Height="auto" />
    15             <RowDefinition Height="auto" />
    16         </Grid.RowDefinitions>
    17             <GroupBox Grid.Row="0" Margin="0,0,0,0">
    18                 <GroupBox.Header>
    19                     <x:Static Member="lang:RsaKeyGenCtrl.genRsaKey"></x:Static>
    20                 </GroupBox.Header>
    21             <Grid>
    22                 <Grid.RowDefinitions>
    23                     <RowDefinition Height="auto" />
    24                     <RowDefinition Height="*" />
    25                 </Grid.RowDefinitions>
    26                 <Grid Grid.Row="0">
    27                     <Grid.ColumnDefinitions>
    28                         <ColumnDefinition Width="auto" />
    29                         <ColumnDefinition Width="auto" />
    30                         <ColumnDefinition Width="auto" />
    31                     </Grid.ColumnDefinitions>
    32                     <Grid Grid.Column="0">
    33                         <Grid.RowDefinitions>
    34                             <RowDefinition Height="auto" />
    35                             <RowDefinition Height="auto" />
    36                         </Grid.RowDefinitions>
    37                             <Label Grid.Row="0" Margin="5,0,5,0">
    38                                 <x:Static Member="lang:RsaKeyGenCtrl.pubKey"></x:Static></Label>
    39                             <Label Grid.Row="1" Margin="5,0,5,5">
    40                                 <x:Static Member="lang:RsaKeyGenCtrl.bitSize"></x:Static>
    41                             </Label>
    42                     </Grid>
    43                     <Grid Grid.Column="1">
    44                         <Grid.RowDefinitions>
    45                             <RowDefinition Height="auto" />
    46                             <RowDefinition Height="auto" />
    47                         </Grid.RowDefinitions>
    48                             <TextBox Grid.Row="0" Name="tbInputPubKey"  Margin="5,0,5,5" MinWidth="50">
    49                                     <TextBox.Text>
    50                                     <Binding Source="{x:Static lib:RsaKey.Instance}" Path="PubExponent" UpdateSourceTrigger="PropertyChanged">
    51                                         <Binding.ValidationRules>
    52                                             <my:NumberValidationRule UpperBound="20" LowerBound="0" />
    53                                         </Binding.ValidationRules>
    54                                     </Binding>
    55                                 </TextBox.Text>                                 
    56                             </TextBox>                           
    57                             <TextBox Grid.Row="1" Name="tbInputMod" Margin="5,0,5,5" MinWidth="50">
    58                                 <TextBox.Text>
    59                                     <Binding Source="{x:Static lib:RsaKey.Instance}" Path="RsaKeySize" UpdateSourceTrigger="PropertyChanged">
    60                                         <Binding.ValidationRules>
    61                                             <my:NumberValidationRule UpperBound="4097" LowerBound="1023" />
    62                                         </Binding.ValidationRules>
    63                                     </Binding>
    64                                 </TextBox.Text>
    65                             </TextBox>
    66                     </Grid>
    67                     <Grid Grid.Column="2">
    68                         <Grid.RowDefinitions>
    69                             <RowDefinition Height="auto" />
    70                             <RowDefinition Height="auto" />
    71                         </Grid.RowDefinitions>
    72                             <DockPanel Grid.Row="0">
    73                                 <Label Margin="5,0,5,0">
    74                                     <x:Static Member="lang:RsaKeyGenCtrl.pubKeyComment"></x:Static></Label>
    75                                 <Image Name="btnHelpPubKey" Cursor="Hand" Source="../../Resources/icons/help.png" Width="16" Height="16" HorizontalAlignment="Right" MouseLeftButtonDown="btn_Help_MouseLeftButtonDown" />
    76                             </DockPanel>
    77                             <DockPanel Grid.Row="1">
    78                                 <Label Margin="5,0,5,5">
    79                                     <x:Static Member="lang:RsaKeyGenCtrl.bitSizeUnit"></x:Static>
    80                                 </Label>
    81                                 <Image Name="btnHelpBitSizeModulus" Cursor="Hand" Source="../../Resources/icons/help.png" Width="16" Height="16" HorizontalAlignment="Right" MouseLeftButtonDown="btn_Help_MouseLeftButtonDown" />
    82                             </DockPanel>
    83                     </Grid>
    84                 </Grid>
    85                 <Grid Grid.Row="1">
    86                     <Grid.ColumnDefinitions>
    87                         <ColumnDefinition Width="*" />
    88                         <ColumnDefinition Width="auto" />
    89                         <ColumnDefinition Width="auto" />
    90                     </Grid.ColumnDefinitions>
    91                         <TextBlock Grid.Column="0"  Foreground="Red" FontWeight="Bold" FontSize="10"
    92                                 Text="{Binding ElementName=tbInputPubKey,
    93                                 Path=(Validation.Errors),
    94                                 Converter={StaticResource eToMConverter}}" />
    95                         <TextBlock Grid.Column="0"  Foreground="Red" FontWeight="Bold" FontSize="10"
    96                                 Text="{Binding ElementName=tbInputMod,
    97                                 Path=(Validation.Errors),
    98                                 Converter={StaticResource eToMConverter}}" />
    99                         <Button Grid.Column="2" Name="btnGenRsaKey" Click="btnGenRsaKey_Click" Height="25" MinWidth="100" VerticalAlignment="Bottom" HorizontalContentAlignment="Right">
    100                             <x:Static Member="lang:RsaKeyGenCtrl.genKey"></x:Static>
    101                         </Button>
    102                 </Grid>
    103             </Grid>
    104         </GroupBox>       
    105             <GroupBox Grid.Row="1" Margin="0,15,0,0">
    106                 <GroupBox.Header>
    107                     <x:Static Member="lang:RsaKeyGenCtrl.generatedKey"></x:Static>
    108                 </GroupBox.Header>
    109                 <Grid>
    110                 <Grid.RowDefinitions>
    111                     <RowDefinition Height="auto" />
    112                     <RowDefinition Height="auto" />
    113                     <RowDefinition Height="auto" />
    114                     <RowDefinition Height="auto" />
    115                 </Grid.RowDefinitions>
    116                     <Label Grid.Row="0">
    117                         <x:Static Member="lang:RsaKeyGenCtrl.privKey"></x:Static></Label>
    118                 <Label Grid.Row="0" Margin="150,0,0,0" Name="lblPrivKeyLength"></Label>
    119                 <TextBox Grid.Row="1" Name="tbResultPrivKey" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultPrivKey_TextChanged"></TextBox>
    120                     <Label Grid.Row="2">
    121                         <x:Static Member="lang:RsaKeyGenCtrl.mod"></x:Static></Label>
    122                 <Label Grid.Row="2" Margin="150,0,0,0" Name="lblModulusLength"></Label>
    123                 <TextBox Grid.Row="3" Name="tbResultModulus" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultModulus_TextChanged"></TextBox>
    124             </Grid>           
    125         </GroupBox>
    126     </Grid>
    127     </ScrollViewer>
     18                <RowDefinition Height="*" />
     19            </Grid.RowDefinitions>
     20
     21            <TabControl Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,5,0,0">
     22                <comp:HelpTabItem HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="tabGenKey" HelpButtonClick="TabItem_HelpButtonClick">
     23                    <comp:HelpTabItem.Header>
     24                        <x:Static Member="lang:RsaKeyGenCtrl.genKey"></x:Static>
     25                    </comp:HelpTabItem.Header>
     26                    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
     27                        <comp:KeyGenControl x:Name="KeyGenControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
     28                    </ScrollViewer>
     29                </comp:HelpTabItem>
     30                <comp:HelpTabItem HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="tabInputKey" HelpButtonClick="TabItem_HelpButtonClick">
     31                    <comp:HelpTabItem.Header>
     32                        <x:Static Member="lang:RsaKeyInputCtrl.inputKey"></x:Static>
     33                    </comp:HelpTabItem.Header>
     34                    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
     35                        <comp:KeyInputControl x:Name="KeyInputControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
     36                    </ScrollViewer>
     37                </comp:HelpTabItem>
     38            </TabControl>
     39
     40        </Grid>
     41    </DockPanel>
    12842</UserControl>
  • trunk/CrypPlugins/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml.cs

    r1778 r1893  
    1313using System.Windows.Shapes;
    1414using PKCS1.Library;
    15 using PKCS1.WpfResources;
    16 
     15using PKCS1.WpfControls;
     16using PKCS1.WpfControls.Components;
    1717
    1818namespace PKCS1.WpfControls.RsaKeyGen
     
    2525        public RsaKeyGenControl()
    2626        {
    27             InitializeComponent();         
     27            InitializeComponent();
     28        }
     29
     30        private void TabItem_HelpButtonClick(object sender, RoutedEventArgs e)
     31        {
     32            if (sender == tabGenKey)
     33            {
     34                OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyGen_Tab);
     35            }
     36            else if (sender == tabInputKey)
     37            {
     38                OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyInput_Tab);
     39            }
    2840        }
    2941
    3042        #region IPkcs1UserControl Member
    3143
    32         public void Dispose()
     44        void IPkcs1UserControl.Dispose()
    3345        {
     46            //throw new NotImplementedException();
    3447        }
    3548
    36         public void Init()
     49        void IPkcs1UserControl.Init()
    3750        {
     51            //throw new NotImplementedException();
    3852        }
    3953
    40         public void SetTab(int i)
     54        void IPkcs1UserControl.SetTab(int i)
    4155        {
     56            //throw new NotImplementedException();
    4257        }
    4358
    4459        #endregion
    45 
    46         private void btnGenRsaKey_Click(object sender, RoutedEventArgs e)
    47         {
    48             Cursor = Cursors.Wait;
    49             RsaKey.Instance.genRsaKeyPair(25);
    50             Cursor = Cursors.Arrow;
    51 
    52             if( RsaKey.Instance.isKeyGenerated() )
    53             {
    54                 this.tbResultModulus.Text = RsaKey.Instance.getModulusToBigInt().ToString(16);
    55                 this.tbResultPrivKey.Text = RsaKey.Instance.getPrivKeyToBigInt().ToString(16);
    56             }
    57         }
    58 
    59         private void tbResultPrivKey_TextChanged(object sender, TextChangedEventArgs e)
    60         {
    61             this.lblPrivKeyLength.Content = "(Länge: " + this.tbResultPrivKey.Text.Length * 4 + " bit)";
    62         }
    63 
    64         private void tbResultModulus_TextChanged(object sender, TextChangedEventArgs e)
    65         {
    66             this.lblModulusLength.Content = "(Länge: " + this.tbResultModulus.Text.Length * 4 + " bit)";
    67         }
    68 
    69         private void btn_Help_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    70         {
    71             if (sender == btnHelpPubKey)
    72             {
    73                 OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyGen_PubExponent);
    74             }
    75             else if (sender == btnHelpBitSizeModulus)
    76             {
    77                 OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyGen_ModulusSize);
    78             }
    79             e.Handled = true;
    80         }
    8160    }
    8261}
  • trunk/CrypPlugins/PKCS1/WpfControls/SigGen/SigGenPkcs1Control.xaml

    r1885 r1893  
    1818            </Grid.RowDefinitions>
    1919           
    20             <TabControl Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionChanged="TabControl_SelectionChanged" Margin="0,5,0,0">
     20            <TabControl Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,5,0,0">
    2121                <comp:HelpTabItem HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="tabGenDatablock" HelpButtonClick="TabItem_HelpButtonClick">
    2222                    <comp:HelpTabItem.Header>
  • trunk/CrypPlugins/PKCS1/WpfControls/SigGen/SigGenPkcs1Control.xaml.cs

    r1778 r1893  
    1515using PKCS1.WpfControls;
    1616using PKCS1.Library;
    17 //using PKCS1.Library;
    18 //using Cryptool.PluginBase.Miscellaneous;
    1917
    2018namespace PKCS1.WpfControls.SigGen
     
    8078        #endregion
    8179
    82         #region EventHanlder
    83 
    84         private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    85         {
    86         }
    87 
    88         #endregion
    89 
    9080        private void TabItem_HelpButtonClick(object sender, RoutedEventArgs e)
    9181        {
  • trunk/CrypPlugins/PKCS1/WpfResources/Shared.xaml

    r1650 r1893  
    66    </ResourceDictionary.MergedDictionaries>
    77
    8 <!--
    9     <Style TargetType="{x:Type local:HelpTabItem}" >
    10         <Setter Property="Template">
    11             <Setter.Value>
    12                 <ControlTemplate TargetType="{x:Type local:HelpTabItem}">
    13                     <Grid SnapsToDevicePixels="True">                   
    14                     <Border x:Name="Bd" Background="{TemplateBinding Background}" BorderBrush="Gray" BorderThickness="1,1,1,0" >
    15                         <DockPanel Name="dp">
    16                             <TextBlock Grid.Column="0" Text="{TemplateBinding Header}" Margin="0,0,0,0"/>
    17                             <Image Grid.Column="1" Cursor="Hand" Source="../Resources/icons/help.png" Width="16" Height="16" HorizontalAlignment="Left" x:Name="PART_Close"/>
    18                         </DockPanel>
    19                     </Border>
    20                     </Grid>
    21                     <ControlTemplate.Triggers>
    22                         <Trigger Property="IsSelected" Value="True">
    23                             <Setter TargetName="Border" Property="Background" Value="{StaticResource HorizontalLightBrush}"/>
    24                         </Trigger>
    25                     </ControlTemplate.Triggers>
    26                 </ControlTemplate>
    27             </Setter.Value>
    28         </Setter>
    29     </Style>
    30 -->
    31 
    32     <!--
    33     <ControlTemplate x:Key="TabItemTemplate" TargetType="{x:Type TabItem}">
    34         <Border Name="Border" BorderThickness="1" CornerRadius="3" TextBlock.Foreground="Black" Padding="3" HorizontalAlignment="Stretch" Background="{StaticResource HorizontalLightBrush}" BorderBrush="Gray">
    35             <DockPanel>
    36                 <TextBlock Text="{TemplateBinding Header}" Margin="{TemplateBinding Padding}" />
    37             </DockPanel>
    38         </Border>
    39     </ControlTemplate>
    40    
    41     <ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
    42         <Border Name="Border"
    43                     BorderThickness="1" CornerRadius="2"
    44                     TextBlock.Foreground="Black" TextBlock.TextAlignment="Left" Padding="3"
    45                     HorizontalAlignment="Stretch" VerticalAlignment="Center">
    46             <ContentPresenter RecognizesAccessKey="True" Margin="{TemplateBinding Padding}" ></ContentPresenter>
    47         </Border>
    48         <ControlTemplate.Triggers>
    49             <Trigger Property="IsMouseOver" Value="True">
    50                 <Setter TargetName="Border" Property="BorderBrush" Value="LightBlue" />
    51             </Trigger>
    52             <Trigger Property="IsPressed" Value="True">
    53                 <Setter TargetName="Border" Property="Background" Value="#EFEFEF" />
    54             </Trigger>
    55         </ControlTemplate.Triggers>
    56     </ControlTemplate>
    57 
    58 
    59     <Style TargetType="{x:Type Button}">
    60         <Setter Property="Template">
    61             <Setter.Value>
    62                 <ControlTemplate TargetType="{x:Type Button}">
    63                     <Border Name="Border"
    64                     BorderThickness="1" CornerRadius="2"
    65                     TextBlock.Foreground="Black" TextBlock.TextAlignment="Left" Padding="3"
    66                     HorizontalAlignment="Stretch" Background="{StaticResource NormalBrush}" BorderBrush="{StaticResource NormalBorderBrush}">
    67                         <TextBlock Text="{TemplateBinding Content}" TextBlock.TextAlignment="Center" Margin="{TemplateBinding Padding}" Name="btnTextBlock">
    68             </TextBlock>
    69                     </Border>
    70                     <ControlTemplate.Triggers>
    71                         <Trigger Property="IsMouseOver" Value="True">
    72                             <Setter TargetName="Border" Property="Background" Value="{StaticResource LightBrush}" />
    73                         </Trigger>
    74 
    75                         <Trigger Property="IsPressed" Value="True">
    76                             <Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
    77                             <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" />
    78                         </Trigger>
    79                         <Trigger Property="IsEnabled" Value="False">
    80                             <Setter TargetName="btnTextBlock" Property="Foreground" Value="Gray" />
    81                         </Trigger>
    82                     </ControlTemplate.Triggers>
    83                 </ControlTemplate>
    84             </Setter.Value>
    85         </Setter>
    86     </Style>-->
    87     <!--
    88     <Style x:Key="{x:Type TabControl}" TargetType="{x:Type TabControl}">
    89         <Setter Property="BorderThickness" Value="1"/>
    90         <Setter Property="BorderBrush" Value="Gray"/>
    91         <Setter Property="Background" Value="Transparent"/>
    92         <Setter Property="Template">
    93             <Setter.Value>
    94                 <ControlTemplate TargetType="TabControl">
    95                     <Grid>
    96                         <Grid.RowDefinitions>
    97                             <RowDefinition Height="Auto"/>
    98                             <RowDefinition Height="*"/>
    99                         </Grid.RowDefinitions>
    100                         <TabPanel Grid.Row="0" IsItemsHost="true"/>
    101                         <Border BorderThickness="0,0,1,1" BorderBrush="#D0CEBF" Grid.Row="1">
    102                             <Border BorderThickness="{TemplateBinding BorderThickness}"
    103                     BorderBrush="{TemplateBinding BorderBrush}">
    104                                 <Border Background="{TemplateBinding Background}">
    105                                     <ContentPresenter ContentSource="SelectedContent"/>
    106                                 </Border>
    107                             </Border>
    108                         </Border>
    109                     </Grid>
    110                 </ControlTemplate>
    111             </Setter.Value>
    112         </Setter>
    113     </Style>
    114    
    115     <Style TargetType="TabItem">
    116         <Setter Property="BorderThickness" Value="1"/>
    117         <Setter Property="BorderBrush" Value="Gray"/>
    118         <Setter Property="Background" Value="{StaticResource NormalBrush}"/>
    119         <Setter Property="VerticalContentAlignment" Value="Center"/>
    120         <Setter Property="HorizontalContentAlignment" Value="Center"/>
    121         <Setter Property="Template">
    122             <Setter.Value>
    123                 <ControlTemplate TargetType="{x:Type TabItem}">
    124                     <Border>
    125                         <Grid>
    126                             <Grid>
    127                                 <Border CornerRadius="3,3,0,0" Background="{TemplateBinding Background}"
    128                        BorderBrush="{TemplateBinding BorderBrush}"
    129                        BorderThickness="{TemplateBinding BorderThickness}"/>
    130                             </Grid>
    131                             <Border BorderThickness="{TemplateBinding BorderThickness}"
    132                      Padding="{TemplateBinding Padding}">
    133                                 <ContentPresenter ContentSource="Header"
    134                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
    135                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
    136                             </Border>
    137                         </Grid>
    138                     </Border>
    139                 </ControlTemplate>
    140             </Setter.Value>
    141         </Setter>
    142         <Style.Triggers>
    143             <Trigger Property="IsMouseOver" Value="True">
    144                 <Setter Property="Background" Value="{StaticResource PressedBrush}" />
    145             </Trigger>
    146             <Trigger Property="IsSelected" Value="True">
    147                 <Setter Property="Background" Value="{StaticResource LightBrush}" />
    148             </Trigger>
    149 
    150         </Style.Triggers>
    151 
    152     </Style>
    153 -->
    1548    <ControlTemplate TargetType="{x:Type Button}" x:Key="simplearrowbtntmpl" >
    1559        <Border BorderBrush="Gray" CornerRadius="3" BorderThickness="2" Margin="{TemplateBinding Margin}">
     
    249103        </ControlTemplate.Triggers>
    250104    </ControlTemplate>
    251 <!--
    252     <ControlTemplate x:Key="ExpanderToggleButton" TargetType="ToggleButton">
    253         <Border
    254     Name="Border"
    255     CornerRadius="2"
    256     Background="Transparent"
    257     BorderBrush="Gray"
    258     BorderThickness="1">
    259             <Path
    260       Name="Arrow"
    261       Fill="Black"
    262       HorizontalAlignment="Center"
    263       VerticalAlignment="Center"
    264       Data="M 0 0 L 4 8 L 8 0 Z"/>
    265         </Border>
    266         <ControlTemplate.Triggers>
    267             <Trigger Property="ToggleButton.IsMouseOver" Value="true">
    268                 <Setter TargetName="Border" Property="Background"
    269               Value="{StaticResource LightBrush}" />
    270             </Trigger>
    271             <Trigger Property="IsPressed" Value="true">
    272                 <Setter TargetName="Border" Property="Background"
    273               Value="{StaticResource PressedBrush}" />
    274             </Trigger>
    275             <Trigger Property="IsChecked" Value="true">
    276                 <Setter TargetName="Arrow" Property="Data"
    277               Value="M 0 0 L 0 8 L 8 4 Z" />
    278             </Trigger>
    279             <Trigger Property="IsEnabled" Value="False">
    280                 <Setter TargetName="Border" Property="Background"
    281               Value="{StaticResource DisabledBackgroundBrush}" />
    282                 <Setter TargetName="Border" Property="BorderBrush"
    283               Value="{StaticResource DisabledBorderBrush}" />
    284                 <Setter Property="Foreground"
    285               Value="{StaticResource DisabledForegroundBrush}"/>
    286                 <Setter TargetName="Arrow" Property="Fill"
    287               Value="{StaticResource DisabledForegroundBrush}" />
    288             </Trigger>
    289         </ControlTemplate.Triggers>
    290     </ControlTemplate>
    291105
    292     <Style TargetType="Expander">
    293         <Setter Property="Template">
    294             <Setter.Value>
    295                 <ControlTemplate TargetType="Expander">
    296                     <Grid Name="grid">
    297                         <Grid.RowDefinitions>
    298                             <RowDefinition Height="Auto"/>
    299                             <RowDefinition Name="ContentRow" Height="0"/>
    300                         </Grid.RowDefinitions>
    301                         <Border
    302             Name="Border"
    303             Grid.Row="0"
    304             BorderThickness="1"
    305             CornerRadius="2,2,0,0"  BorderBrush="AliceBlue">
    306                             <Grid>
    307                                 <Grid.ColumnDefinitions>
    308                                     <ColumnDefinition Width="20" />
    309                                     <ColumnDefinition Width="*" />
    310                                 </Grid.ColumnDefinitions>
    311                                 <ToggleButton
    312                 IsChecked="{Binding Path=IsExpanded,Mode=TwoWay,
    313                                     RelativeSource={RelativeSource TemplatedParent}}"
    314                 OverridesDefaultStyle="True"
    315                 Template="{StaticResource ExpanderToggleButton}"
    316                 Background="{StaticResource NormalBrush}" />
    317                                 <TextBlock
    318                   Name="cnt"
    319                 Grid.Column="1"
    320                 Margin="4"
    321                 Text="{TemplateBinding Header}"
    322                   />
    323               </Grid>
    324                         </Border>
    325                         <Border
    326             Name="Content"
    327             Grid.Row="1"
    328             Background="{StaticResource WindowBackgroundBrush}"
    329             BorderBrush="{StaticResource SolidBorderBrush}"
    330             BorderThickness="1,0,1,1"
    331             CornerRadius="0,0,2,2" >
    332                             <ContentPresenter Margin="4" />
    333                         </Border>
    334                     </Grid>
    335                     <ControlTemplate.Triggers>
    336                         <Trigger Property="IsMouseOver" Value="True">
    337                             <Setter TargetName="cnt" Property="Foreground"
    338                     Value="Blue" />
    339                         </Trigger>
    340                         <Trigger Property="IsExpanded" Value="True">
    341                             <Setter TargetName="ContentRow" Property="Height"
    342                     Value="{Binding ElementName=Content,Path=DesiredHeight}" />
    343                         </Trigger>
    344                         <Trigger Property="IsEnabled" Value="False">
    345                             <Setter TargetName="Border" Property="Background"
    346                     Value="{StaticResource DisabledBackgroundBrush}" />
    347                             <Setter TargetName="Border" Property="BorderBrush"
    348                     Value="{StaticResource DisabledBorderBrush}" />
    349                             <Setter Property="Foreground"
    350                     Value="{StaticResource DisabledForegroundBrush}"/>
    351                         </Trigger>
    352 
    353                     </ControlTemplate.Triggers>
    354                 </ControlTemplate>
    355             </Setter.Value>
    356         </Setter>
    357     </Style>
    358     -->
    359106    <Style x:Key="btnNavigateLeft" TargetType="Button">
    360107        <Setter Property="Template">
Note: See TracChangeset for help on using the changeset viewer.